【问题标题】:Facebook Access Token Expiring with offline accessFacebook 访问令牌过期,离线访问
【发布时间】:2011-12-19 23:18:24
【问题描述】:

我有一个应用程序来管理用户 Facebook 通知,该应用程序请求 offline_access 以及管理通知权限。我的日志一直充满 Facebook 错误,我知道会发生更改密码错误,但我不明白为什么会出现这些错误:

Facebook 错误:验证访问令牌时出错:会话已在 unix 时间 1320012000 过期。当前的 unix 时间为 1320191317。 Facebook 错误:(#200) 需要“manage_notifications”权限才能查询用户的通知。

它们的发生方式太频繁了,以至于用户只是拒绝权限并且即将到期的访问令牌的到期时间为 0

【问题讨论】:

    标签: facebook oauth access-token facebook-oauth


    【解决方案1】:

    为了以后参考,offline_access已经被移除,现在可以获得一个寿命为2个月的access_token

    https://developers.facebook.com/roadmap/offline-access-removal/

    【讨论】:

    • 令牌在 2 个月后过期,我们如何在 60 天后在没有用户交互的情况下延长这段时间?
    • 看看这里developers.facebook.com/docs/facebook-login/access-tokens 看起来“即使是长期存在的访问令牌最终也会过期。在任何时候,您都可以通过将人送回您的应用使用的登录流程”,因此用户无需执行任何操作,但仍需要打开您的应用
    • @Luke 如果我们可以在到期时间之前获得一个新的访问令牌但没有用户交互,即没有再次登录,是否有可能!
    【解决方案2】:

    正在尝试使用用户的令牌?一旦您请求离线访问,当您想要做某事时,您应该使用您的应用“登录”以获取它自己的访问令牌,而不是使用您保存的用户令牌。如果那是你正在做的。

    向下滚动到此页面上标有“应用登录”的部分。这就是当用户不存在时你应该做的事情,而不是保留和使用用户的令牌。

    https://developers.facebook.com/docs/authentication/

    【讨论】:

    • 我正在使用用户令牌。你是说即使我正在获取用户数据,我也可以使用我的应用登录令牌做我需要的一切?
    • 差不多。离线访问权限意味着用户授予您在没有其令牌的情况下执行操作的权限。您可以为您的应用使用 Facebook 发布的不同版本。无需为您想要与之做某事的每个用户交换令牌。
    • 那不正确 - 他们应该使用用户访问令牌 - 带有 offline_access 的用户访问令牌有很长的到期时间。如果用户取消对应用程序的授权、更改密码或出于安全原因被锁定,它可能会过期。如果更改了 App Secret,它也会使所有现有令牌失效,否则应该没问题
    • 您必须使用用户令牌,使用应用令牌会导致:{"error":{"message":"A user access token is required to request this resource.","type":"OAuthException"}}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 2013-09-18
    • 2011-07-10
    • 1970-01-01
    相关资源
    最近更新 更多