Facebook:OAuthException:已使用此授权码

时间:2013-12-18 00:48:58

标签: php facebook facebook-graph-api curl facebook-login

背景

我知道之前已经问过这个问题,我已经找到了我找到的所有答案,但似乎没有人给出了令人满意的答案。我已经看到Facebook有一个关于此的错误,但由于缺乏信息而关闭它。这就是为什么我再次询问是否有人在那里找到了任何好的解决方案。

我正在尝试获取一个短期访问令牌,以便能够获取用户个人资料。直到一段时间之前,这个工作正常,现在我只得到“OAuthException:此授权代码已被使用”。从api电话回来。

使用的技术:

  • PHP(没有用于Facebook API交互的第三方库或Facebook SDK)
  • cURL
  • 图谱API
  • HTTPS

逻辑流程

  1. 获取与此类似的登录对话网址:

    https://graph.facebook.com/oauth/authorize?client_id= [APP_ID]&安培; REDIRECT_URI = [URLENCODED_REDIRECT_URI]&安培;显示弹出=&安培;范围= publish_stream

  2. 通过Facebook登录对话登录。成功重定向 用户指定的回调URI并添加“代码” quersy-string变量。

  3. 当用户被重定向到指定的回调URI时 马上尝试用“代码”得到一个短暂的accessstoken 由Facebook登录对话提供的变量。我这样做 调用此网址:

    https://graph.facebook.com/oauth/access_token?client_id= [APP_ID]&安培; REDIRECT_URI = [URLENCODED_REDIRECT_URI]&安培; client_secret = [APP_SECRET]&安培;代码= [CODE_SENT_FROM_FACEBOOK]

    我每次都会收到以下回复: {“error”:{“message”:“此授权码已过期。”,“type”:“OAuthException”,“code”:100}}

    我已经知道:

    1. 我将获得一个短暂的访问令牌
    2. 代码仅有效10分钟
    3. 我只能使用一次代码(我的记录确认我只打电话 access_token请求只需一次)
    4. 我错过了什么?它为什么突然停止工作? 任何答案,提示或技巧都非常感谢!提前致谢。

1 个答案:

答案 0 :(得分:-1)

如果我理解的话。

每次登录Facebook时,此标记都会发生变化。

你需要获得一个新的令牌,总是你进行新的登录。