我命令代表用户访问Facebook API,必须获得OAuth access_token,该过程已有详细记录(虽然它似乎是来自FB的一些未记录的要求)但我不时会得到这个"验证验证码时出错。"在尝试交换access_token的验证码时。
似乎有很多人遇到这样的问题,而且大多数情况下redirect_uri似乎都是问题,但这里的redirect_uri很好(它与传递给auth对话框的那个完全相同) ,以斜杠结尾,没有时髦的字符或尾随的查询字符串,我几乎阅读了有关此问题的所有线程,并且没有提出的解决方案确实解决了我的问题)
最有趣的是,当我检查我的日志时,我在哪里写下我使用的确切请求网址,并手动尝试获取访问令牌,然后就可以了。这就像请求在用户登录时失败但在一段时间后仍然有效。
所以事实上它正在工作似乎表明请求没问题,但Facebook方面存在问题,就好像在auth对话框执行时有一些复制没有完成&# 39; s的事情,我尝试用代码交换代码。
我设置了一个重试机制,希望两次调用之间的延迟足够,第二次调用会成功,但它也不起作用。
此外,它大部分时间都在工作,我无法区分它何时起作用以及何时失败,只有用户更改。
任何建议都将不胜感激。
答案 0 :(得分:0)
我刚刚碰到这个问题并解决了它。
问题在于我将oauth调用中的redirect_uri指定为http://apps.facebook.com/myapp/而不是https://apps.facebook.com/myapp/。
有一点奇怪的是,如果我将它们输入浏览器地址字段,但完全相同的参数有效,但不是来自应用程序的服务器端请求。
可以在每个用户的基础上指定您是否要使用或不使用HTTPS浏览Facebook,因此我建议您在测试身份验证流程时使用两种模式下的设置进行测试。