希望这不会变得太复杂。:) 事情是..
我正在尝试使用 OAuth 作为身份验证机制将我的 PHP 代码发布到 Google Buzz。我正在做典型的“OAuth 舞蹈”(获取请求令牌、授权、交换访问令牌),但我遇到了一些似乎在谷歌方面的问题。希望我错了 - 修复起来会容易得多。:)
言归正传 - oauth_callback 参数似乎没有传递给授权表单。我重定向到的授权 URI 如下:
https://www.google.com/buzz/api/auth/OAuthAuthorizeToken
?domain=<my.domain>
&scope=<urlencode(https://www.googleapis.com/auth/buzz)>
&oauth_token=<request_token>
&oauth_callback=<my.domain/callback>
重定向时,客户端被要求授权站点读取/写入 Buzz。如果接受,Google 会再次(但以不同的形式)请求允许访问 .. 在第二次允许后,会显示成功消息,但它不会将任何令牌返回到我的站点,也不会重定向到 oauth_callback uri。
我发现的解决方法是通过 firebug/chrome 检查器手动添加表单字段 'oauth_callback=',然后,在这两个确认之后,它重定向到我的站点,我可以从响应中提取授权令牌,并将其交换为访问令牌。如果我使用“标准”谷歌授权端点,我会被正确重定向(仅限一次确认),但之后我获得的访问令牌对 Buzz 无效。
所以,我错了还是谷歌?!:D 我已经实现了 OAuth 以与其他一些服务(Facebook、MySpace..)合作,但我从来没有遇到过这么多麻烦。