Facebook:OAuthException:此授权码已被使用
Posted
技术标签:
【中文标题】Facebook:OAuthException:此授权码已被使用【英文标题】:Facebook: OAuthException: This authorization code has been used 【发布时间】:2014-01-06 00:20:12 【问题描述】:背景:
我知道以前有人问过这个问题,我已经找到了所有答案,但似乎还没有人给出令人满意的答案。我已经看到 Facebook 有一个关于此问题的错误,但由于缺乏信息而将其关闭。这就是为什么我再次询问是否有人现在找到了任何好的解决方案。
我正在尝试获取一个短期访问令牌,以便能够获取用户个人资料。直到前一段时间,这一直很好,现在我只收到“OAuthException:此授权码已被使用”。从 api 调用返回。
使用的技术:
php(没有用于 Facebook API 交互的第三方库或 Facebook SDK) 卷曲 图形 API https逻辑流程
获取类似于此的登录对话框的 url:
https://graph.facebook.com/oauth/authorize?client_id=[APP_ID]&redirect_uri=[URLENCODED_REDIRECT_URI]&display=popup&scope=publish_stream
通过 Facebook 登录对话框登录。成功重定向 用户到指定的回调 URI 并添加“代码” 查询字符串变量。
当用户被重定向到指定的回调 URI 时 立即尝试使用“代码”获取短暂的访问令牌 Facebook 登录对话框提供的变量。我这样做是 调用这个网址:
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":"此授权码已过期。","type":"OAuthException","code":100
我已经知道了:
-
我将获得一个短期访问令牌
该代码仅在 10 分钟内有效
我只能使用一次代码(我的日志确认我只调用
access_token 请求一次)
我错过了什么?为什么它突然停止工作? 非常感谢任何答案,提示或技巧!提前致谢。
【问题讨论】:
您是否尝试过将短期令牌换成长期令牌并改用它?插入代码应该只是一个额外的步骤。 您确定在某处没有重定向循环?当您已经使用代码获取访问令牌或代码已过期时,就会出现该错误......也许发布一些 PHP。 见***.com/questions/16054033/… 我也有这个问题,但我打电话给 $session = $helper->getSession();每次用户刷新页面或访问新页面时。还没有找到解决方法:( 【参考方案1】:如果我明白了。
每次登录 facebook 时,此令牌都会更改。
每次登录时都需要获取新令牌。
【讨论】:
这在技术上是正确的,但对 OP 没有帮助或帮助。以上是关于Facebook:OAuthException:此授权码已被使用的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的 OAuthException Facebook PHP SDK
Facebook 错误:“(#100)无效参数”、“OAuthException”、“代码”:100
OAuthException 200 facebook sdk wp8
尝试在 Facebook 中注册成就时出现 OAuthException 2500(未知路径组件)