【问题标题】:Error validating access token: Session is invalid. This could be because the application was uninstalled after the session was created验证访问令牌时出错:会话无效。这可能是因为在创建会话后卸载了应用程序
【发布时间】:2013-12-16 15:45:46
【问题描述】:

我已经发布了一个与 Facebook SDK 3.0 集成的安卓应用。但是通过授权方法实现登录到 Facebook,同时处理 SSO。

我的用户收到以下 Facebook 错误:

"验证访问令牌时出错:会话是 无效的。这可能是因为在创建会话后卸载了应用程序”

不确定我是否理解为什么会出现此错误及其含义?

如何重现此错误?场景是什么,是否常见?

【问题讨论】:

    标签: android facebook facebook-android-sdk


    【解决方案1】:

    此错误表示用户授权您的应用后,他们转到facebook account settings 并删除了您的应用。在这种情况下,您的应用需要用户再次授权。

    您还应该查看 this page,它解释了如何处理不同的错误,以及 Scrumptious 示例应用程序,它让您了解如何在代码中处理它们。

    【讨论】:

    • 当重现您提到的流程时,我收到以下错误:“验证访问令牌时出错:用户 xxxxxxxx 未授权应用程序 yyyyyyyyyy。”而不是我描述的错误消息。
    • 你现在有一个开放的会话吗?用户之前是否授权过您的应用程序?访问令牌可能已过期,或者您设备上的用户已更改。尝试执行 session.closeAndClearTokenInformation(或从设备中删除您的应用并重新安装),然后再次重做授权流程。如果您遇到任何进一步的错误,任何代码 sn-ps 或提供实际的错误代码/子代码都会有所帮助。
    • 我使用的是授权方法,而不是“会话”方法。在每次授权之前,我都会向 Facebook 请求“/me”检查以验证与 Facebook 的连接。登录 Facebook 完成后,我保存了用户名和令牌。当我收到描述的错误时,用户名没有保存,这意味着登录过程本身存在错误。
    • 如果登录过程中出现错误,您将无法获得要保存的令牌。这个错误尤其意味着我在答案中所说的(因为用户授权了您的应用程序,但随后从 facebook 网站上删除了该应用程序,然后尝试通过 FB 连接再次使用您的应用程序,这就是为什么令牌是现在无效)。您可以通过查看错误代码并要求他们重新授权(删除保存的令牌,并再次通过授权流程)在代码中明确处理此问题。另外,如果你使用的是 3.0 的 SDK,你真的应该使用新的 Session 机制。
    【解决方案2】:

    @Jon :我认为您必须维护客户端会话并将访问令牌存储在会话中。当客户端尝试与 FB 交互时,请再次使用此 accessToken。

    一段时间后,这个 accessToken 将被 FB api 失效,因此您需要获取新的并再次存储它。

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 2013-10-22
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      相关资源
      最近更新 更多