【问题标题】:"Error validating verification code." when requesting access_token“验证验证码错误。”请求 access_token 时
【发布时间】:2012-04-22 11:52:01
【问题描述】:

我为了代表用户获得对 Facebook API 的访问权,必须获得 OAuth access_token,该过程有据可查(尽管它似乎是来自 FB 的一些未记录的要求)但有时我会得到这个“验证验证码错误。”尝试用验证码交换 access_token 时。

似乎有很多人遇到这样的问题,而且大多数时候 redirect_uri 似乎是问题所在,但这里的 redirect_uri 很好(它与传递给身份验证对话框的完全相同,以斜线并且没有时髦的字符或尾随查询字符串,我阅读了关于这个问题的几乎所有关于 SO 的线程,并且没有一个提议的解决方案确实解决了我的问题)

最有趣的是,当我检查我的日志时,我在其中写入了我使用的确切请求 url,并手动尝试获取访问令牌,然后它就可以工作了。就像用户登录时请求失败但一段时间后工作一样。

所以它毕竟工作的事实似乎表明请求很好,但在 Facebook 方面存在问题,比如是否涉及一些复制在身份验证对话框执行它的时间之间没有完成我尝试用代码交换令牌。

我设置了重试机制,希望两次调用之间的延迟足够,第二次调用成功,但它也不起作用。

此外,它大部分时间都在工作,我无法区分何时工作和何时失败,只有用户会改变。

任何建议将不胜感激。

【问题讨论】:

  • 仅供参考,如果您事先提到您正在谈论 Facebook API,您的问题会更容易理解。
  • 尼克,你是对的,我也可以告诉你,因为 gae 标签在这里不适用(尽管它在 gae 上运行),所以我可以让你走出困境
  • 如果您要嵌入到 facebook 页面,那么我发现签名请求路由是获取 oauth 令牌的更简单方法。但是,如果您不在 facebook 上(就像旧的 facebook connect 一样),那么您就会被这种方法困住 - 您可以开始工作,但有点挑剔。
  • 这实际上是一个好点,我一直想知道令牌交换有什么用,因为我在 signed_request 中得到了它,但想坚持使用文档。这实际上并不能解决问题,但肯定会解决它。

标签: python facebook facebook-graph-api oauth


【解决方案1】:

我刚刚碰到这个问题并解决了。

问题是我在 oauth 调用中将 redirect_uri 指定为 http://apps.facebook.com/myapp/ 而不是 https://apps.facebook.com/myapp/

有点奇怪的是,如果我将它们输入到浏览器地址字段中,完全相同的参数会起作用,但不是作为来自应用程序的服务器端请求。

可以根据每个用户指定是否要使用或不使用 HTTPS 浏览 Facebook,因此我建议您在测试身份验证流程时使用两种模式下的设置进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-19
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多