【问题标题】:Android FQL Query errorAndroid FQL 查询错误
【发布时间】:2012-05-25 23:10:43
【问题描述】:

我今天早些时候成功地进行了 FQL 查询。现在,当我尝试进行相同的查询时,我收到以下消息。

"error_code":190,"error_msg":"验证访问令牌时出错:由于用户更改了密码,会话已失效。"

我在自己的帐户上进行查询,并且我的密码尚未更改。关于为什么会发生这种情况的任何建议?

现在我收到此错误。

“验证访问令牌时出错:会话与当前存储的会话不匹配。这可能是因为用户在会话创建后更改了密码,或者 Facebook 出于安全原因更改了会话。”

【问题讨论】:

  • 只需注销并为自己获取一个新的会话令牌。那样有用吗? (无论如何,您都需要针对无效的会话令牌进行编程)
  • 我尝试注销然后重新登录,似乎没有用。
  • 你可能有一个 Javascript 登录来使用 cookie,而 php 不使用 cookie,或类似的东西。一些代码可能有助于诊断?
  • 这是在安卓上,我使用的是 Facebook SDK
  • 对不起 - 我正在关注两个标签(facebook + php)并且没有检查它是哪个标签。即使在上述情况下,“facebook.isSessionValid()”也可以返回 true(它在文档中)。因此,如果您收到这些错误,只需再次调用“授权”并处理回调。您是否尝试过再次授权,然后获取新的访问令牌?

标签: android facebook


【解决方案1】:

根据上面的cmets,会是这个问题。

Android 中的单点登录 (SSO) 允许用户授权您的应用,一旦他们完成授权,如果他们在手机上为任何应用登录 Facebook,他们将在后续访问中直接登录/平板电脑。

这样做的缺点是 SSO 会记住令牌,如果令牌失效(通过用户取消对应用程序的授权或更改密码或其他详细信息),它将尝试使用它。您必须特别检查这两个错误,因为“isSessionValid() 将返回 true,即使它不是。如果您发现这两个错误之一,则再次调用 authorize 方法。

因此,在您的情况下,捕获该错误,然后调用 authorize()。

来自 Facebook 的文档:http://developers.facebook.com/docs/mobile/android/build/#sso

【讨论】:

  • 感谢您的详细回答,我已将此添加到我的代码中,现在应该可以正常工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多