我写了一个python脚本,运行在我的服务器上的一个cron作业上,使用我自己的facebook应用程序发布到我的facebook帐户 . 不幸的是,每隔几个月,我得到:
Response: {u'error': {u'message': u'Error validating access token: Session has expired...', u'code': 190, u'type': u'OAuthException', u'error_subcode': 463}}
每次发生这种情况,我都必须登录facebook,获取新代码 - >访问令牌 .
我想完全自动化这个,这样我就可以获得一个新的访问令牌,而无需登录到Facebook . 最好的方法是什么?
我更喜欢这样做的方法,而不是将我的密码存储在我的服务器上或通过curl访问facebook(这将是一个黑客),但是 - 最糟糕的是 - 我想我可以用curl登录到facebook代码 - >访问令牌 .
请不要告诉我使用offline_access(因为我的大部分搜索都显示) . 这已经被弃用了 .
TIA!
编辑:这是我目前如何重新认证(这需要我登录Facebook):
-
在浏览器中登录facebook
-
提取从facebook返回的$ code
-
存储从facebook返回的更新的access_token
1 回答
这正是应该如何 . 没有办法(不再)获得永久有效的用户访问令牌 . 应该不允许任何应用程序使用超过60天未打开应用程序的用户的令牌 .
一种解决方案是创建Facebook页面并使用扩展页面访问令牌,因为它们永远有效 . 以下是您需要的所有信息的几个链接:
https://developers.facebook.com/docs/facebook-login/access-tokens/
http://www.devils-heaven.com/facebook-access-tokens/
http://www.devils-heaven.com/extended-page-access-tokens-curl/