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(未知路径组件)

facebook集成错误2500 OAuthException xcode 8 Swift 3

facebook视频上传python 返回错误code:100,'type':OAuthException