Jason,
Great to hear from you – thank you for reaching out!
The thread you found (in which I’m hailed a hero!) describes the basic principle – that we need to rename any top-level ‘global’ variables/classes so they don’t conflict with other versions of the Google client library.
WordPress in general seems to encourage constructions like: if (!class_exists(…)) { /* define class */, but I think that is incredibly dangerous – you may pull in an unexpected version of the class giving unpredictable results. A “can’t redefine class” error would be preferable.
The worst case is that one plugin chooses not to redefine the Google classes, so things seem to work, but then it turns out that whichever other plugin loaded the library was using the wrong version.
So I renamed every top level class in Google’s client library from Google_* to GoogleGAL_* (GAL = Google Apps Login, hopefully unique). Obviously, you need to choose something different…
That worked well, but when I updated to a more recent release of Google’s client library, I did not realize they had introduced a new top level function called google_api_php_client_autoload. So in the thread that you found, that’s where I also had to rename that (and rejig its code a bit to match my renaming of Google_* to GoogleGAL_*).
Regarding redirect URLs, I always use /wp-login.php so things are probably different for you. On multisite, I have an option (default) to always use the root site’s /wp-login.php, or (harder for the user to configure) each site’s own /subsite/wp-login.php URL. The second option is slightly tidier for the user experience, but the admin has to register every possible subsite in the Google Cloud Console project.
I hope this helps. I’ll send you an email too so we can keep in touch.
Thanks,
Dan