Oauth 2.0无法从signed_request"code"值获取访问令牌

DAC*_*C84 7 facebook-graph-api access-token facebook-javascript-sdk facebook-oauth

我正在迁移到Oauth 2.0.我当前的站点使用JS SDK,有一个fb登录按钮,然后我访问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
Run Code Online (Sandbox Code Playgroud)

这是回应:

{"error":{"message":"Error validating verification code.","type":"OAuthException"}} 
Run Code Online (Sandbox Code Playgroud)

代码值是否显示格式正确?关于什么是错的任何想法?

小智 10

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

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

尝试

令牌URL: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

为我工作!

  • 哈哈,我在Google摘录的已删除网页中发现了这个秘密.为了使读者更加清楚,`redirect_uri`必须存在,但指定为空. (4认同)
  • facebook(非)文档将是我的死亡 (2认同)