持久的FB访问

我知道关于Facebook访问令牌以及他们造成的悲伤有很多问题,但尽管进行了大量实验并阅读了许多令人沮丧的模糊博客文章(FB和其他文章),但我仍然努力得到明确的答案以满足我的需求。 让我简单地分解我的过程到目前为止:

  • 我正在创建一个站点,服务器端需要从单个Facebook页面中提取帖子/状态
  • 我是该Facebook页面的管理员
  • 我创建了一个Facebook应用程序
  • 使用Facebook Graph API Explorer,我生成了一个短期密钥,连接到我的应用程序和我的帐户,授予我的帐户权限以查看我的页面的访问令牌
  • 我已经将我的短期钥匙转换成长寿命钥匙(60天)的ala情景4
  • 这就是我被卡住的地方。 我的60天密钥适用于我的服务器,以便从该页面获取所需的信息,但据我所知,无法以编程方式扩展该60天密钥。 我也不知道如何生成新的短期密钥,而无需手动转到Facebook Graph API Explorer并创建一个。

    由于这是我的服务器向Facebook API发出请求,而不是基于用户的系统(我可以轻松请求用户再次授权Facebook应用),因此会创建一个非常笨重的系统。 由于Facebook弃用offline_access ,真的没有永久性的方法让我的服务器从我自己的页面中获取信息吗? 我是否真的必须手动创建一个新密钥,并每60天手动更新一次服务器?

    还是有我失踪的东西?

    更新:

    先前在这里找到的分步指南已经被转化为它自己的答案。


    这些是以前在问题中的步骤 - 他们已经被迁移到这个答案。

    发现可以生成一个不会过期的Facebook页面访问令牌(在@Igy的帮助下),对于所有寻求相同内容的人来说,下面是一个清晰的步骤问题:

  • 确保您是希望从中获取信息的FB页面的管理员
  • 创建一个FB应用程序(应该使用与页面管理员相同的用户帐户)
  • 转到Facebook Graph API Explorer
  • 在右上角,从“应用程序”下拉列表中选择您创建的FB应用程序
  • 点击“获取访问令牌”
  • 确保你添加了manage_pages权限
  • 通过进行此Graph API调用,将此短期访问令牌转换为长期存取令牌: https://graph.facebook.com/oauth/access_token?client_id=<your FB App ID >&client_secret=<your FB App secret>&grant_type=fb_exchange_token&fb_exchange_token=<your short-lived access token>
  • 抓住返回的新的长期访问令牌
  • 使用图形API调用以使用新的长期访问令牌查看您的帐户: https://graph.facebook.com/me/accounts?access_token=<your long-lived access token> : https://graph.facebook.com/me/accounts?access_token=<your long-lived access token>
  • 抓取您要从中拉取信息的页面的access_token
  • 查看令牌以确定它已设置为Expires: Never
  • 这应该做到这一点。 您现在应该拥有一个不会过期的Facebook页面访问令牌,除非:

  • 您更改您的Facebook帐户密码
  • 您失去目标网页的管理员权限
  • 您删除或取消授权您的Facebook应用程序
  • 任何这些都会导致访问令牌失效。

    如果您正在获取(#100) Tried accessing nonexisting field (accounts) on node type (Page) ,请转到Access令牌调试器,复制User ID的值,并用它来替换URL中的“我”部分步骤9。


    这包括在Offline Access弃用文档中

    为页面管理员使用60天令牌来检索页面访问令牌(通过/PAGE_ID?fields=access_token/me/accounts ) - 页面访问令牌不会有过期时间


    非常感谢@redhotvengeance的分步指南。

    过了一段时间,现在Facebook文档中已经有清楚的描述:

    https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension

    扩展页面访问令牌

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

    要获得更长寿命的页面访问令牌,请将用户访问令牌换成长寿命的访问令牌(如上所述),然后请求页面访问令牌。 生成的页面访问令牌不会有任何到期时间。

    链接地址: http://www.djcxy.com/p/70379.html

    上一篇: lasting FB access

    下一篇: Getting an access token for my facebook app