2

我在我的 joomla 模块中使用访问令牌来获取页面/组墙提要帖子以显示在用户网站页面中。用户在他们的 joomla 站点中使用该模块之前由我的 facebook 应用程序从我的站点生成访问令牌。

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

我从网络上得到的调用这个 url 令牌可以扩展 -

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 天令牌。

4

2 回答 2

4

60 天到期的全部意义在于,用户在到期后重新访问您的应用程序,然后您将他们带回登录过程。

  • 获得短暂的令牌
  • 重新扩展

在没有用户交互的情况下延长 60 天会破坏整个过程。如果您的用户在 60 天内未与您的应用交互,则应用权限应过期。

于 2013-06-06T13:02:39.937 回答
0

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

facebook 删除了一天后,您可以使用该offline_access 权限来延长已经延长的 60 天权限。

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

客户端 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 本身可能与之前授予的长寿命 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

于 2015-06-10T08:52:45.403 回答