我正在迁移到Oauth 2.0。我当前的站点使用JS SDK,有一个fb-login按钮,然后我访问Graph来获取用户的详细信息。
我在获取访问令牌以从Graph获取此数据时遇到问题。
一个问题可能是JS SDK对话框没有将我的重定向到它应该的URL,即带有?code = XXXXXXX的URL,然后我可以使用它来获取访问令牌。
所以我看了php SDK(我正在使用ASP)来看看它是如何做到的。我已经在cookie中解析了signed-request值,得到了'code'参数中的值以添加到令牌URL但我无法获得访问令牌。这些是我正在使用的值:
解析signed_request数据:
{"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"}}
代码值是否显示格式正确?关于什么是错的任何想法?
答案 0 :(得分:10)
这里完全相同的问题...
解决方案:如果从cookie有效负载中提取代码,请将参数redirect_uri保留为空
试
为我工作!