当使用Graph API时遇到Facebook Oauth异常错误?

5
我们最近在使用Facebook登录时遇到了问题。每个登录的用户都能够进行一次/me图形调用,然后我们得到以下两种错误之一:
"message": "Error validating access token: The session has been invalidated because the user has changed the password." "message":"Error validating access token: Session does not match current stored session. This may be because the user changed the password since the time the session was created or Facebook has changed the session for security reasons."
第一个错误似乎发生在新用户登录时,第二个错误更多地发生在已经授权我们应用程序的人身上。它们似乎能够获得第一个/me图形调用的用户名,然后OAuth令牌长时间被破坏(其中一些最终会由于某种原因回来)。
我最近发现我们的代码两次使用me/home JSON请求了Facebook。当我去掉这段代码后,我能够通过Rest访问图形API,而且没有出现错误。
我看到各种各样的错误提到了Facebook的问题,但问题据说已经“修复”,很难看到为什么两次重复访问Facebook会杀死我们的认证令牌——你会认为我们会得到关于速率限制的消息。
有人能解释一下这是什么吗?我还没有验证是否去掉第二个调用就可以解决问题,但目前看起来是这样。

请问您是否找到了任何解决方案或技巧?我一直面临着同样的问题,而且仍然没有解决:https://dev59.com/WW025IYBdhLWcg3wCxVN - DhruvPathak
1个回答

5
我遇到了同样的问题。看看这篇关于如何处理无效访问令牌的博客文章,它解释了如何重新授权用户。
我有一个理论,即一旦请求到达他们的系统,它们就会被重新路由,因此会被执行多次。虽然没有证据,但我确实遇到过问题,只发送了1个请求,但似乎触发了2或3个请求。有趣的是,如果您提供了一个取消授权回调URL,并且某人卸载了您的应用程序,Facebook将调用该URL 3次。这给日志带来了一些有趣的记录...
不幸的是,为Facebook开发就像西部荒野一样...它是无法无天的,他们经常说一件事,意思是另一件事(或在这种情况下声称问题已经解决,而实际上并没有)。

谢谢,很高兴听到不仅是我一个人遇到这个问题!我们目前的假设是,我们连续从两个不同的IP地址访问了相同的图形URL - 请注意,我们得到的错误以以下内容结尾:“Facebook出于安全原因更改了会话。” Facebook可能已经采取了一些反欺骗措施...这也可以解释你的问题吗? - V_H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接