扩展Facebook的访问令牌的到期日在图形API超过2个月(Extending expiry da

2019-07-18 08:18发布

我使用python在Facebook页面wallpost自动化工作

我有我自己的使用Facebook的图形API后所以,我这样做是通过发送一个HTTP POST请求的FB页面上自动发布https://graph.facebook.com/mypagename/feed

与和的access_token消息作为POST PARAMATERS

我通过使用图形API资源管理器中选择我的应用程序,我使用,并给予它的权限来管理我的网页生成的访问令牌

Intitially的使用的access_token要在2小时内到期

为了延长到期日〜2个月,我发送HTTP GET请求,该网址

https://graph.facebook.com/oauth/access_token?client_id=my_app_id&client_secret=my_app_secret&grant_type=fb_exchange_token&fb_exchange_token=old_access_token

该响应是一个JSON字符串以秒新的access_token到期时间

新的访问令牌的到期时间现在是60天。

现在是有可能延长到期时间60天之后?

Answer 1:

短期和长期令牌

用户访问令牌有两种形式:短期令牌和长寿命的令牌。 短暂的令牌通常有大约一两个小时的寿命,而长期令牌通常有60天左右了一辈子。 你不应该依赖于保持不变,这些寿命 - 寿命可能更改,恕不警告或提前到期。 参见下处理错误的更多。

那么剩下的唯一办法就是使用代码只是前60天再生

使一个GET请求到图形API和从JSON响应滤除访问令牌

在这里获取你的用户标识http://findmyfacebookid.com/

现在

请求

GET /{user-id}/accounts

响应

{
  "data": [
    {
      "category": "Product/service",
      "name": "Sample Page",
      "access_token": "{access-token}",
      "id": "1234567890",
      "perms": [
        "ADMINISTER",
        "EDIT_PROFILE",
        "CREATE_CONTENT",
        "MODERATE_CONTENT",
        "CREATE_ADS",
        "BASIC_ADMIN"
      ]
    }, 
}

https://developers.facebook.com/docs/facebook-login/access-tokens#pagetokens



Answer 2:

您可以使用下面的API从Facebook刷新令牌生活60天,只是当令牌即将到期,:在再次调用相同的API 60天刷新其生活恢复到60天的时间点令牌到期是存在于到期参数和它的值是在几秒钟内

更换CLIENT_ID和CLIENT_SECRET结合各自实际值

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

在ACCESS_TOKEN,把实际令牌值而不附加“=的access_token”



Answer 3:

你的页面访问令牌实际上不会过期。 请阅读文档 :

扩展页面访问令牌

当它们与manage_pages许可认证的应用程序可以检索页管理员的用户页面访问令牌。 如果用于检索此页面访问令牌的用户访问令牌是短暂的,页面访问令牌也将是短暂的。

为了得到长寿命的页面访问令牌,交换用户访问令牌的长寿命之一,如上,然后请求页面访问令牌。 结果页面访问令牌不会有任何的到期时间。

所以,如果您使用的是长寿命的用户访问令牌,你会得到一个无限页面访问令牌。



文章来源: Extending expiry date of facebook access token in graph api beyond 2 months