Facebook自动reauth

时间:2014-07-23 19:09:52

标签: facebook curl oauth access-token facebook-access-token

我写了一个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):

  1. 在浏览器中登录Facebook
  2. 访问浏览器:https://www.facebook.com/dialog/oauth?client_id=XXX&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=publish_actions
  3. 提取从facebook
  4. 返回的$ code
  5. curl" https://graph.facebook.com/oauth/access_token?client_id=XXX&redirect_uri=https://www.facebook.com/connect/login_success.html&client_secret=YYY&code= $ code"
  6. 存储从facebook
  7. 返回的更新的access_token

1 个答案:

答案 0 :(得分:2)

这正是应该如何。没有办法(不再)获得永久有效的用户访问令牌。应该不允许任何应用程序使用超过60天未打开应用程序的用户令牌。

一种解决方案是创建Facebook页面并使用扩展页面访问令牌,因为它们永远有效。以下是一些包含您需要的所有信息的链接: