自动发布在墙上 - Facebook Graph API PHP SDK v4

时间:2014-06-25 22:48:24

标签: php facebook facebook-graph-api

我正在为一个活动构建一个应用程序,以便他们可以直接在Facebook上发布他们的新闻消息。我正在尝试使用de php SDK V4,但是我不理解登录过程的某些部分(搜索几个小时后仍无法找到解决方案)。

我的问题出在登录过程中。首先,您必须指定您的应用程序并为您的应用程序保密。比你必须用帐户登录facebook。

  1. 但我应该使用哪个帐户?他们的一个活动?矿? (我是活动页面的管理员)(这意味着所有消息都会 从我的帐户发布而我不是海报...听起来很漂亮 怪异..)
  2. 我应该使用哪种方法登录Facebook?有一些类似于FacebookRedirectLoginHelper(),FacebookCanvasLoginHelper()或Javascript的方法。但是,据我所知,所有这些助手都会让您的用户登录他们的Facebook帐户,这不是我想要的。
  3. 在我搜索过程中,我找到了一个正在制作类似系统的人的例子(Facebook Graph API PHP SDK v4 - Post on Page)。他/她使用下面的代码来获取Facebook会话:

    FacebookSession::setDefaultApplication('{APP ID}','{APP SECRET}');
    $session = new FacebookSession('{Page Access Token}');
    

    这表明您不需要用户登录facebook,只需要一个Page Acces Token。但是,如果我理解正确(如果我错了就纠正我),要获得Page Acces Token,首先需要一个User Acces Token(https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens)。要获得用户访问令牌,您应该登录,而不是在我的故事开头回到问题1和2。

    或者我可以使用以下api请求获取Page Acces令牌(根据https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens

    GET /{user-id}/accounts
    

    使用随机用户ID,只要页面管理员授予此用户生成此类令牌的权限(因此在检索Page Acces令牌时不应登录与“user-id”相关的用户?)。

1 个答案:

答案 0 :(得分:1)

听起来你需要使用以下流程:

  1. 让页面管理员使用他们的Facebook帐户登录。请务必申请manage_pages扩展权限。这样您就可以访问他们管理的页面。
  2. 一旦他们授予了对您应用的访问权限,您就会获得一个短暂的用户访问令牌。将其交换为长期存在的用户访问令牌。
  3. 使用/me/accounts获取user's pages的列表。每个页面都会返回一个access_token字段。这些都是page access tokens。我们希望使用长期存在的用户访问令牌来获取此列表,以便返回的所有页面访问令牌都不会有到期日期。他们永远活着! :)
  4. 如果您要将作为该页面发布,请使用页面访问令牌发布到页面墙上。如果您要将作为该用户发布,请使用用户访问令牌发布到页面墙上。
  5. Facebook Query Builder可能会使整个过程变得更加容易。 :)

    希望有所帮助!