在没有用户交互的情况下延长有效/过期的60天访问令牌

时间:2013-06-06 12:46:09

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-php-sdk

我在我的joomla模块中使用访问令牌来获取页面/组墙馈送帖子以显示在用户网站页面中。用户生成的访问令牌由我的Facebook应用程序从我的站点使用,然后在他们的joomla站点中使用该模块。

我想要什么 - “我想在没有用户互动的情况下延长现有的过期/过期60天令牌的过期日期。”

我从网上得到的调用此网址令牌的内容可以扩展 -

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

我做了一些扩展令牌的测试并得到了这些结果:(

1.I created short lived access token in client side and extended it to 60 days by the above url 
2.I call above url again by passing that 60 days token as "fb_exchange_token" value to extend token again.I got different 60 days token but issue and expire date is same as before, not extended!!
3.I again repeated test 1 and got a token which also have same issue and expire date! as I wanted to have the expire date extended as my test 2 is failed.

那么我如何实现我想要的?我计划在第58天或过期后延长60天令牌。

2 个答案:

答案 0 :(得分:4)

60天到期的全部内容是,用户在到期结束时重新访问您的应用程序,然后通过登录过程将其驱回。

  • 获取短暂的令牌
  • 重新延伸

在没有用户交互的情况下延长60天会使整个过程失败。如果您的用户在60天内未与您的应用进行互动,则应用程序权限将过期。

答案 1 :(得分:0)

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

您可以使用每日一次延长已延长的60天权限的offline_access权限已被Facebook删除。

现在,您使用的是正确的网址,但条款如下:

客户端OAuth并通过新端点扩展Access_Token到期时间

使用新端点,您将能够延长现有的,未过期的,短期用户access_token的到期时间。 请注意,端点只能用于扩展短期用户access_tokens 。如果您传递的access_token具有长期过期时间,则端点将简单地将相同的access_token传递给您,而不会更改或延长过期时间。

要获取长期存在的用户access_token,只需将您自己的client_id(您的app_id),您的app_secret以及未过期的短期access_token传递给下面的端点。您将返回一个新的长期用户access_token;除了传递到端点的短期access_token之外,此access_token还将存在。 如果要刷新仍然有效的长期访问权限,则必须首先获取新的短期用户access_token,然后再调用相同的端点。返回的access_token将具有新的长期到期时间,但是,access_token本身可能与先前授予的长期access_token相同或不同。

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

我打算将关于如何“从服务器端长期令牌生成长期用户令牌”的解释粘贴到您可以阅读:http://developers.facebook.com/docs/facebook-login/access-tokens#long-via-code

但似乎已经讨论过这个问题了: Facebook PHP SDK 4.0 : Getting Long Term Access Token

相关问题