无法从Facebook获取访问令牌.得到OAuthException说"验证验证码时出错"

Dee*_*Two 44 facebook token

我正在使用java,我的演示应用程序的目的很简单:更新用户状态.我按照http://developers.facebook.com/docs/authentication页面上的服务器端流程进行了操作.我得到了auth对话框,facebook引导回调网址,我在回调页面中获得了代码.然后,当我尝试生成访问令牌时,我失败了.

在指南页面中,它表示可以使用以下网址生成访问令牌:

https://graph.facebook.com/oauth/access_token?
     client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&
     client_secret=YOUR_APP_SECRET&code=THE_CODE_FROM_ABOVE
Run Code Online (Sandbox Code Playgroud)

但是在我的环境中发生的是我收到以下错误消息:

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

我很确定每个参数都是正确的,因为如果我更改了client_id值或client_secret参数,我将收到不同的错误消息.代码参数是我从facebook回调中得到的.所以这应该是正确的,对吧?真的无法弄清楚是什么问题....

对此有何想法?我被困在这里......

小智 65

我最近处理了这个问题:一切都匹配,但是OAuthException失败了.使其工作的是改变重定向uri(在两个流的请求中)来自:

http://foo.example.com

http://foo.example.com/

即,添加尾部斜杠.然后它奏效了.愚蠢和愚蠢,但你去.

  • 谢谢!我一直在努力解决这个问题.多么愚蠢的问题. (2认同)

Vin*_*ley 6

我有同样的问题并尝试了上述建议.他们提供了帮助,但在我的情况下,问题是我的redir URL有一个查询参数,而Facebook并不酷.因此,故事的寓意是你发送的用于交换令牌的redir url必须与原始redir url相同,并且它不能具有查询参数.