Python:检查facebook用户访问令牌是否已过期

Ran*_*Rag 0 python facebook facebook-graph-api

我正在使用facepy facebook api从我的Facebook帐户中获取消息.我已经long live access token使用API 获得了60天的有效性.现在,在我查询消息之前的程序中,我想检查我的令牌是否已经过期,如果过期,则获取一个新令牌.

我正在使用 get_extended_access_token,它还返回一个描述令牌到期时间的日期时间实例.现在我认为这不是一种有效的使用方式,get_extended_access_token因为每次我要查询新消息时它都会获取access token(我知道它和以前一样),但我认为这是一个开销.

所以,我用Google搜索,发现我们也可以使用

https://graph.facebook.com/debug_token?input_token=INPUT_TOKEN&access_token=ACCESS_TOKEN
Run Code Online (Sandbox Code Playgroud)

调试令牌

所以我提供了我long live access token而不是INPUT_TOKEN and ACCESS_TOKEN它,它给了我一个json响应:

{
   "data": {
      "app_id": XXXXX,
      "is_valid": true,
      "application": "YYYYY",
      "user_id": ZZZZZZ,
      "issued_at": 1349261684,
      "expires_at": 1354445684,
      "scopes": [
         "read_mailbox"
      ]
   }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果你看一下expires_at它正在显示的字段1354445684 seconds,当我试图将它转换为几天/几个月它给了我15676 days,当我在图形资源管理器中使用调试选项检查相同的标记时,它显示

expires_at: 1354445684(about 2 months)
Run Code Online (Sandbox Code Playgroud)

现在,我不明白是怎么1354445684相当于2 months以及如何在Python来实现这一目标.

还要评论哪个更好的方法来检查其是否已过期API or using the facebook url

CBr*_*roe 6

现在,如果您查看expires_at字段,它显示1354445684秒,当我尝试将其转换为天/月时,它给了我15676天

然后你已经完成(或理解)了一些错误的东西.

expires_at1354445684是一个Unix时间戳,等于Sun, 02 Dec 2012 10:54:44 +0000翻译成人类可读的日期.

距离issued_at时间戳1349261684也就是两个月Wed, 03 Oct 2012 10:54:44 +0000