0

希望这不会变得太复杂。:) 事情是..

我正在尝试使用 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..)合作,但我从来没有遇到过这么多麻烦。

4

1 回答 1

0

好的,当我第二天早上(部分)用新鲜的眼睛解决问题时,解决方案非常简单(但仍然没有记录).. :) 以防其他人需要回答 - 请求请求令牌时应指定 oauth_callback 参数。

于 2010-08-03T23:37:07.757 回答