1

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

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

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

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

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

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

任何建议将不胜感激。

4

1 回答 1

0

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

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

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

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

于 2012-08-13T12:44:10.923 回答