从Facebook获取长实时访问令牌

Ana*_*ghe 56 facebook-graph-api

据我了解,最近Facebook已经决定删除​​该offline_access权限,并引入了一个名为长期访问令牌的概念,最长可达60天.有谁知道如何使用Facebook JavaScript SDK获取此访问令牌?

Yan*_*erk 107

有一种方法可以将其延长至60天.这里描述:https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal/Scenario 4: Client-side OAuth and Extending Access_Token Expiration Time through New Endpoint

编辑:为了扩展访问令牌,您需要使用短期访问令牌发出以下请求:

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 
Run Code Online (Sandbox Code Playgroud)

  • 您无法使用js sdk获得60天的访问令牌.您只能在收到短期访问令牌后将其延长至60天. (3认同)
  • 有没有办法在没有用户互动的情况下再延长60天? (2认同)
  • 请注意,根据https://developers.facebook.com/docs/facebook-login/access-tokens/,因为此请求发送APP_SECRET(并检索长期存在的用户令牌),所以不应该在客户端完成,但是而是在服务器上. (2认同)
  • @Excaliber:将 APP_SECRET 作为获取参数发送仍然有点冒险。它在路由中可见,并且可以存储在访问日志中。作为 post 参数发送会好得多。由于这是一个 https 调用,因此它将被加密。也许 facebook 以这种方式实现它是因为同源/跨域规则。如果他们把它放在他们的服务器端 SDK 中会很好。 (2认同)

Ste*_*ago 12

由于Facebook中的一个错误,一些用户将不得不在Facebook发布长期令牌之前取消对该应用的授权.

  • 证实.在我的头撞到屏幕7个小时后,从我的帐户中删除了应用程序,并返回了长期令牌. (11认同)