【问题标题】:Facebook iOS SDK: session invalid on iPhone after logging out of Facebook from a desktopFacebook iOS SDK:从桌面注销 Facebook 后,iPhone 上的会话无效
【发布时间】:2011-11-14 04:33:01
【问题描述】:

我最近将 Facebook 支持集成到我正在开发的 iPhone 应用程序中。我能够让用户登录并正常进行 API 调用,但我最近注意到一些奇怪的行为。

用户登录后,我将访问令牌和到期日期存储在 NSUserDefaults 中。在执行 Facebook API 调用之前,我使用 [session isSessionValid] 来确保会话有效。

如果用户从桌面登录 Facebook 然后退出,则会出现此问题。 [session isSessionValid] 仍然返回 YES,但 Facebook API 调用失败并出现错误:

“验证访问令牌时出错:这可能是因为用户已注销,也可能是由于系统错误。”

我做错了什么,或者这是 Facebook 的错误吗?

【问题讨论】:

    标签: iphone ios facebook session fbconnect


    【解决方案1】:

    即使您将访问令牌和过期日期存储在 NSUserDefaults 中,您也需要在用户每次进入您的应用时验证它们,即使是离线访问权限访问令牌也可能会失效,例如当用户更改密码时。

    当您的应用程序启动时,您只需要调用图形 API“我”,如果您遇到异常,您只需重新授权,然后您继续执行 API 调用的常规工作流程。

    希望对你有帮助

    【讨论】:

    • 这很好,我想补充一点,当收到访问令牌异常时,您还需要注销并从磁盘中删除访问令牌信息,然后重新授权。
    • 谢谢。我添加了代码以重新授权错误,它似乎工作正常。
    猜你喜欢
    • 1970-01-01
    • 2011-05-19
    • 2015-08-30
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    相关资源
    最近更新 更多