8

我在尝试发布到用户流时收到来自Facebook的以下错误。为某些用户获取来自Facebook的“错误验证访问令牌”

Error validating access token: The session has been invalidated because the user has changed the password or because auth.expireSession was called.

的工作流程如下:

  1. 授权与Facebook请求scope=offline_access,publish_stream权限(如果当前用户尚未授权)

  2. 做服务器上的一些工作(需要5-10分钟)

  3. 尝试发布到你ser的Facebook流

此代码适用于很多用户,但对于某些用户,我得到了Error validating access token错误。它几周前开始频繁发生,然后似乎停止,现在又发生了很多。我当然不会在我的终端上调用auth.expireSession,并且在授权到发布的5-10分钟窗口中,多个用户似乎不可能更改他们的密码。有谁知道可能是什么原因造成的?

+1

我不确定,但它可能是用户“删除”您的应用程序的发布流权限?即使使用'offline_access'来更新'access_token'也是一个好主意。 – ifaour 2011-05-12 07:35:57

+0

您是否正在监视取消授权回拨以查看用户是否正在卸载? – 2011-07-26 23:40:15

+0

@Jason我没有监控,但用户似乎不太可能授予我的应用访问权,然后在接下来的5-10分钟内拒绝访问。很多用户似乎更不可能在几天内做同样的事情。无论哪种方式,这个问题似乎已经消失,所以我猜这是一个临时的FB错误。 – herbrandson 2011-08-09 02:49:29

回答

9

无论何时出现此错误,您都应该通过身份验证流程回跑用户。有很多原因,无论是用户还是我们都会使会话失效。我们有一个如何在此https://developers.facebook.com/blog/post/500

+0

感谢您的回复。这实际上在停止发生后的几天内就停止了。但是,由于发布是作为后台进程的一部分发生的,因此在这种情况下重新授权用户不起作用。 – herbrandson 2011-08-09 02:46:59

+0

您的应用仍需要考虑这种情况。您可以向用户发送一封电子邮件,然后再次通过验证流程运行。 – 2011-08-24 02:10:02

+1

链接断开.... – 2016-12-28 22:27:12

相关问题