Sounds like you’re possibly getting a fatal error.
Are you seeing any errors in your server’s error_log?
I’ve had some trouble getting the configuration right with Google, because they have some very strict requirements on how you define the return URLs and whatnot.
What does the URL that you’re returned to look like? Does it match what Google is expecting? Any source-code output of the page (View Source)? Any server errors?
Hopefully we can figure that out.
Here’s a link to picture of what I see after it’s on the /wp/wp-admin/tools.php?page=keyring&service=google&action=verify&state=2722&code=4/GeydjC3-4Q-xDbqOQvL-GLuclKba.gtd-TuT9tfYUmmS0T3UFEsPCmSSXiAI
https://copy.com/pHEAU0EYAuIEe1sr
Here is a link to picture of what I see when I look in firebug on that blank screen.
https://copy.com/fHWuzAGB2h3VKI0D
Also, no errors are showing in the log files.
Both of those links are asking me to log in?
Would it not make sense to attempt to integrate the Google Client library https://github.com/google/google-api-php-client
Since they are deprecating a lot of this junk.
I can see two issues currently. The first is that the Google Contacts class sets const NAME = 'google-contacts';, but then uses a URL parameter for service of just google. I changed this on lines 165 and 179, see: https://github.com/cftp/keyring/commit/854022000fac7241024af6b47a2d4287bd012de0
Then I hit a thornier issue, which I’m not sure how to fix. The state parameter is missing from the GET parameters, so the validation in verify_token fails. I’m not sure whether this parameter should be set by Google or in the return URL we specify when setting up the service. Any suggestions, @beaulebens?
I’ve made some changes in trunk to address these 2 issues Simon, thanks for spotting them. I need to do some more complete testing yet, but I’m hoping to roll this into 1.6 which should be out this week.
I’ve verified that with the latest changes from trunk, Google Contacts is working now. The instructions are a big off if you’re using the new Google Developers Console thing, but if you set everything up, I get a clean auth flow now.