【问题标题】:Facebook long lived access token renewalFacebook 长期访问令牌更新
【发布时间】:2015-01-13 14:44:57
【问题描述】:

我已将 facebook 集成到我的 windows phone 商店应用程序中。

我在第一次登录后获得长期访问(60 天)令牌。

我在网站上看到过短期访问令牌只能扩展,如果我们使用长期令牌进行扩展,则会返回相同的。

但是,我可以使用我的有效 long_lived 令牌获得具有新到期时间的新访问令牌

我用过:

https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN

我如何获得新令牌。

另外,要获取访问令牌的信息以获取到期时间,我无法使用:

GET /debug_token?
     input_token={input-token}&
     access_token={access-token}

我正在调试:

{"error":{"message":"Unknown OAuth 2.0 method, debug_token.","type":"OAuthException","code":1}}

我们是否应该等待访问令牌过期(在 60 天内)并在每次过期时将用户导航到登录屏幕以获取新的访问令牌。

请建议更新访问令牌。

谢谢。

【问题讨论】:

    标签: c# facebook facebook-graph-api facebook-c#-sdk


    【解决方案1】:

    我们是否应该等待访问令牌过期(在 60 天内)并在每次过期时将用户导航到登录屏幕以获取新的访问令牌

    是的。如果您能够在没有用户交互的情况下延长一个长期存在的令牌,那么它将是一个无限期的令牌,这违背了时间限制令牌的目的。

    简而言之,您不能延长长期存在的访问令牌。

    【讨论】:

    • 好的。但是我通过上面提到的第一个链接获得了新的访问令牌。那是什么?我说的是续订而不是延期。
    • @vits 您正在尝试更新一个长期存在的令牌以使其不会过期。除了语义之外,您还试图延长它的寿命。您需要等到它过期时,才能让用户通过登录对话框进行短暂的登录,然后再次扩展到长期使用。
    • 感谢您的回复。我想在访问令牌到期之前更新访问令牌,以便用户每次都需要登录,就像我在谷歌中使用刷新令牌所做的那样。在这里​​,您是说我们无法获得剩余的到期时间,因此无法更新?意味着我们必须导航到登录屏幕以更新访问令牌。我说的对吗?
    • @vits 正确,这就是它的设计方式。一旦用户点击您的站点,您可以通过登录流程重定向用户,如果没有请求新权限,用户将不会看到登录对话框,因为它将直接重定向回站点。您可以使用developers.facebook.com/tools/explorer 并单击“获取访问令牌”查看其工作原理,并注意弹出窗口随即显示并关闭。
    • 如果它的设计没问题,我想知道我们是否可以在第 59 天为接下来的 60 天设置访问令牌更新机制,依此类推......
    猜你喜欢
    • 2014-02-27
    • 2013-10-14
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    相关资源
    最近更新 更多