Python &引用;验证验证码时出错。”;请求访问令牌时

Python &引用;验证验证码时出错。”;请求访问令牌时,python,facebook,facebook-graph-api,oauth,Python,Facebook,Facebook Graph Api,Oauth,我为了代表用户访问Facebook API,必须获得OAuth access_令牌,该过程有很好的文档记录(尽管FB似乎有一些未记录的要求),但在尝试将验证代码交换为access_令牌时,我不时会收到此“错误验证码” 似乎有很多人有这样的问题,大多数时候重定向uri似乎是个问题,但在这里重定向uri是好的(它与传递给auth对话框的完全相同,以斜杠结尾,没有时髦的字符或尾随的查询字符串,我阅读了几乎所有关于这个问题的线程,没有一个建议的解决方案解决了我的问题) 最有趣的是,当我检查我的日志时,我

我为了代表用户访问Facebook API,必须获得OAuth access_令牌,该过程有很好的文档记录(尽管FB似乎有一些未记录的要求),但在尝试将验证代码交换为access_令牌时,我不时会收到此“错误验证码”

似乎有很多人有这样的问题,大多数时候重定向uri似乎是个问题,但在这里重定向uri是好的(它与传递给auth对话框的完全相同,以斜杠结尾,没有时髦的字符或尾随的查询字符串,我阅读了几乎所有关于这个问题的线程,没有一个建议的解决方案解决了我的问题)

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

因此,它到底在工作这一事实似乎表明请求很好,但Facebook方面存在一个问题,比如,如果在auth对话框完成它的工作和我尝试将代码交换为令牌之间,有一些复制没有完成

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

而且,它大部分时间都在工作,我无法区分什么时候工作,什么时候失败,只有用户改变


如果您有任何建议,我们将不胜感激。

我只是偶然发现了这个问题并解决了它

问题是我在oauth调用中将redirect_uri指定为而不是

一件有点奇怪的事情是,如果我在browser address字段中输入了完全相同的参数,但不是作为来自应用程序的服务器端请求,那么这些参数就起作用了


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

FYI,如果您事先提到您正在谈论Facebook API,您的问题会更容易理解。尼克,您是对的,我是lso可以告诉我,由于gae标记,当它不适用于这里(尽管它在gae上运行)时,我可以让你脱离困境。如果你嵌入到facebook页面,那么我发现签名请求路由是获取oauth令牌的一种更简单的方法。但是如果你离开facebook(如旧的facebook connect)然后你被这个方法困住了——你可以使用这个方法,但是有点挑剔。事实上,这是一个很好的观点,我一直想知道这个代币交换有什么用,因为我在signed_请求中得到了它,但想坚持使用文档。这实际上不能解决问题,但肯定能解决它。