将图表api中的facebook访问令牌的到期日期延长2个月以上

Him*_*der 8 facebook-graph-api facebook-access-token

我正在使用python在facebook页面wallpost自动化上工作

我通过使用facebook graph api post在fb页面上自动发布 所以我通过向https://graph.facebook.com/mypagename/feed发送HTTP POST请求来做到这一点

使用access_token和消息作为POST参数

我通过选择我正在使用的应用程序并授予其管理我的页面的权限,使用graph api explorer生成访问令牌

在本质上,access_token用于在2小时内过期

要将到期日期延长到2个月,我将HTTP GET请求发送到此URL

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天的到期时间吗?

Him*_*der 4

短期和长期代币

用户访问令牌有两种形式:短期令牌和长期令牌。短期令牌的生命周期通常约为一两个小时,而长期令牌的生命周期通常约为60 天。您不应该依赖这些生命周期保持不变 - 生命周期可能会在没有警告的情况下发生变化或提前过期。请参阅处理错误下的更多内容。

因此,剩下的唯一方法是在 60 天之前使用代码重新生成。

向 graph api 发出 GET 请求并从 JSON 响应中过滤掉访问令牌

在这里获取您的用户 ID http://findmyfacebookid.com/

现在

要求

GET /{user-id}/accounts
Run Code Online (Sandbox Code Playgroud)

回复

{
  "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"
      ]
    }, 
}
Run Code Online (Sandbox Code Playgroud)

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