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

时间:2013-01-17 14:38:54

标签: facebook-graph-api facebook-access-token

我正在使用python

在facebook页面wallpost自动化上工作

我在fb页面上自动发布了我使用 facebook graph api post 所拥有的页面 所以我通过向https://graph.facebook.com/mypagename/feed

发送HTTP POST请求来完成此操作

使用access_token和消息作为POST参数

通过选择我正在使用的应用并授予其管理我的网页的权限,我使用 图形api资源管理器 生成访问令牌

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

3 个答案:

答案 0 :(得分:4)

短期和长期代币

用户访问令牌有两种形式:短期令牌和长期令牌。短命令牌通常具有大约小时或两小时的寿命,而长寿命令牌通常具有大约 60天的寿命。你不应该依赖这些生命周期保持不变 - 生命周期可能会在没有警告的情况下改变或提前到期。请参阅处理错误。

所以剩下的唯一方法就是在60天之前使用代码重新生成。

发出GET请求以绘制api图并从JSON响应中过滤掉访问令牌

在此处获取您的用户ID 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

答案 1 :(得分:3)

你可以使用facebook下面的api将令牌生命刷新到60天,当令牌即将到期时,再用60天的时间再次调用相同的api,将其生命从那个时间点恢复到60天令牌过期出现在expires参数中,其值以秒为单位

将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 =”

答案 2 :(得分:0)

您的页面访问令牌实际上不会过期。请阅读documentation

  

扩展网页访问权限

     

应用可以从页面管理员用户检索页面访问令牌   使用manage_pages权限进行身份验证。如果用户访问   用于检索此页面的令牌访问令牌是页面的短命   访问令牌也将是短暂的。

     

要获取更长寿的页面访问令牌,请交换用户访问权限   如上所述,对于长期存在的令牌,然后请求页面访问   令牌。生成的页面访问令牌将没有任何到期时间。

因此,如果您使用长期存在的用户访问令牌,您将获得无限的页面访问令牌。