【问题标题】:Facebook auto-reauthFacebook 自动重新认证
【发布时间】:2014-09-15 03:15:36
【问题描述】:

我编写了一个 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 获取代码 -> 访问令牌。

请不要告诉我使用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 返回的 $code
  4. 卷曲“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”
  5. 存储从 facebook 返回的更新的 access_token

【问题讨论】:

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


    【解决方案1】:

    这正是它应该的样子。没有办法(不再)获得永久有效的用户访问令牌。任何应用都不得使用超过 60 天未打开应用的用户的 Token。

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

    【讨论】:

    • 谢谢,但我不想更新 Facebook 主页。我知道这不受 facebook 的支持,但我敢肯定有人已经找到了解决方法。从服务器登录 Facebook 帐户的最佳方式是什么?卷曲? fbcmd 呢?是否有其他选项可以让无头服务器登录到我不知道的 Facebook?
    • 如果有办法绕过它,那么它是 100% 非法的,应该作为安全问题报告给 facebook ;) - 否则对短期访问令牌的整个更改将几乎是无效的。
    猜你喜欢
    • 1970-01-01
    • 2013-07-26
    • 2013-10-04
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2010-12-19
    相关资源
    最近更新 更多