什么是获得持久令牌从服务器发布到Facebook粉丝页的步骤

我在Facebook上有一个商业页面(在Facebook上称为粉丝页面)。

我想post to that Page只要用户在我的应用程序上采取一定的行动。 我想发布为页面本身而不是用户(即从我的个人帐户)。 该post将来自我的外部服务器(我正在使用restFB)。

我已经完成了授权我的个人帐户以及页面的相应manage_pages权限的步骤。 我也获得了页面的访问令牌。 我甚至能够按照我的意愿将其张贴到该页面。 问题是,我得到的令牌(通过他们的开发工具graphics浏览器)有一个小时到期。 我需要它持续比这更长的时间,最好永远。

我环顾了互联网,其中包括SO的答案和大多数post指向可怕的FB文档或作出模糊的引用挂钩我的外部应用程序到facebook应用程序,并通过发布。 我试图做这个工作,但我很困惑整个过程,坦率地说(什么是callback地址,例如?)。

无论如何,我很乐意看到简单的英语一步一步的指示, getting a long lasting access token ,我可以使用从一个应用程序发布到Facebook粉丝页面。

请不要参考FB文档。 这很糟糕。 我至less经历了十几次。

谢谢。

以下是您可以按照以下两个步骤获取粉丝页的永不过期标记:

  1. 首先,您需要获得长期存在的用户访问令牌(即在2个月内到期)。 要得到这个,请拨打以下电话:

      GET /oauth/access_token? grant_type=fb_exchange_token& client_id={app-id}& client_secret={app-secret}& fb_exchange_token={short-lived-token} 

    更多细节在这里 。 如果您发现任何困难,请告诉我。

  2. 使用您在上述步骤中获得的令牌(不是普通的令牌,这是主要区别)获取您的页面永不过期的访问令牌 –

     $facebook->api("/PAGE_ID?fields=access_token"); 

所以这个概念是这样的:为了获得长期存在的页面令牌,你应该在进行调用的时候使用长期存在的usr令牌。

@Shadowfax是完整的权利。 只需完成工作stream程即可:

  1. 使用facebooklogin名和manage_pages权限获取短期用户access_token。
  2. 将这个短期用户access_token发送到您的服务器
  3. 从服务器,请@Shadowfax请求:

    GET /oauth/access_token? grant_type=fb_exchange_token&client_id={your-app-id}& client_secret={your-app-secret}&fb_exchange_token={short-lived-user-access_token}

    与主机graph.facebook.com和端口443

    您必须从服务器发出此请求,因为它包含您的应用程序密钥。

  4. 从服务器,你现在可以通过用这个长寿命版本replace用户access_token来查询Facebook

  5. 在服务器上,通过查询用户帐户,使用长时间用户access_token获取页面access_token:

    GET /{user-id}/accounts?access_token={long-live-token}

    你将获得所有用户的页面与他们的ID和access_token。

    或者,如果您已经知道其page_id,则可以直接查询特定页面

    GET /{page-id}/?fields=access_token&access_token={long-live-token}

正如@Shadowfax所说,只要用户(您)不撤销您的应用权限,该页面的长生命令将永远持续。