6

我正在迁移到 Oauth 2.0。我当前的站点使用 JS SDK,有一个 fb-login 按钮,然后我正在访问 Graph 以获取用户详细信息。

我在获取访问令牌以从 Graph 获取此数据时遇到问题。

一个问题可能是 JS SDK 对话框没有将我重定向到它所说的 URL,即带有 ?code=XXXXXXX 的 URL,然后我可以使用它来获取访问令牌。

所以我查看了 php SDK(我使用的是 ASP)来了解它是如何做到的。我已经解析了 cookie 中的签名请求值,获取了“代码”参数中的值以添加到令牌 URL,但我无法获得访问令牌。这些是我正在使用的值:

解析的签名请求数据:

{"algorithm":"HMAC-SHA256","code":"2.AQCovUOFCduELbna.3600.1323900000.1-773555243|Y_cW4riF4K7el_9a4oVNjL0qvZc","issued_at":1323895617,"user_id":"XXXXXXXXXX"}

Token URL: https://graph.facebook.com/oauth/access_token?
           client_id=XXXXXXXX&
           redirect_uri=XXXXXXXX&
           client_secret=XXXXXX&
           code=2.AQCovUOFCduELbna.3600.1323900000.1-773555243|Y_cW4riF4K7el_9a4oVNjL0qvZc

这是回应:

{"error":{"message":"Error validating verification code.","type":"OAuthException"}} 

代码值的格式是否正确?关于有什么问题的任何想法?

4

1 回答 1

9

这里完全相同的问题...

解决方案:如果代码是从 cookie 有效负载中提取的,则将参数 redirect_uri 留空

尝试

令牌网址:https ://graph.facebook.com/oauth/access_token?client_id=XXXXXXXX&redirect_uri=&client_secret=XXXXXX&code=2.AQCovUOFCduELbna.3600.1323900000.1-773555243|Y_cW4riF4K7el_9a4oVNjL0qvZc

为我工作!

于 2011-12-15T14:13:46.407 回答