繁体   English   中英

Facebook:OAuthException:已使用此授权码

[英]Facebook: OAuthException: This authorization code has been used

背景:

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

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

使用的技术:

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

逻辑流程

  1. 获取登录对话的URL看起来类似于:

    https://graph.facebook.com/oauth/authorize?client_id=[APP_ID]&redirect_uri=[URLENCODED_REDIRECT_URI]&display=popup&scope=publish_stream

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

  3. 当用户被重定向到指定的回调URI时,它立即尝试使用Facebook登录对话框提供的“代码”变量获得短暂的accessstoken。 我通过调用此url来做到这一点:

    https://graph.facebook.com/oauth/access_token?client_id=[APP_ID]&redirect_uri=[URLENCODED_REDIRECT_URI]&client_secret=[APP_SECRET]&code=[CODE_SENT_FROM_FACEBOOK]

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

我已经知道了:

  1. 我将获得一个短暂的访问令牌
  2. 代码仅有效10分钟
  3. 我只能使用一次代码(我的日志记录确认我只调用一次access_token请求)

我错过了什么? 它为什么突然停止工作? 任何答案,提示或技巧都非常感谢! 提前致谢。

如果我理解。

每次登录Facebook时,此令牌都会发生变化。

您需要获得新令牌始终进行新登录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM