使用PHP作为页面管理员发布到Facebook页面

时间:2013-11-11 13:37:09

标签: php facebook facebook-graph-api

首先,我知道有一百万个与此类似的问题,但它们都已过时(Facebook已更改且说明不再有效)或者没有解释如何具体做我要求的问题。

我正在尝试在Facebook上注册一个应用程序,以便我可以自动提供给公司的Facebook页面,我是其中的管理员。

我正在尝试通过PHP实现这一点,我有相当丰富的经验(PHP,而不是Facebook API。)

到目前为止,我已注册为Facebook开发者,制作了Facebook应用程序,获得了appID和密码,并从Github下载了facebook-php-sdk。我试图遵循几个教程,但Facebook开发人员/应用页面都已更改,因此说明文件现在无效。

我想做的就是能够通过PHP从服务器自动发布到我的页面墙,好像我自己发布状态更新作为页面管理员。我不明白这是如何或为何如此困难。

Facebook应用程序页面有一百万个我从未听说过但似乎没有关联的设置,然后没有任何信息可以指示我做我想做的事情。

就我而言,这已经到了墙上。不知道接下来该做什么。 Facebook一直在问我“选择你的应用程序如何与Facebook集成”,但他们的选项似乎没有包含我想要的内容,这只是在我自己的页面上发布。我似乎还没有真正能够使用该应用程序,因为它坚持使用各种设置,如“Canvas URL”,我不明白等等,然后我显然需要设置权限,但我看到了也没办法做到这一点。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

设置应用

您需要对在您的网页上至少拥有内容创建者权限的用户进行身份验证。因此,您需要选择“Facebook登录网站”并输入您的网站网址。 您还必须输入域名(没有协议的网站网址) 在测试时将其保持在沙盒模式,以后可以对其进行编辑。

您不必担心其他设置,因为可以直接在您的PHP代码中添加要求的权限。

“在线”访问

要记录并直接发布到Facebook,您需要检索访问令牌

获取访问令牌

这是一个基本的运行:

  • 如果用户没有
  • ,请让用户登录并允许具有适当权限的应用(manage_pages,publish_stream)
  • Retreive用户访问令牌
  • 使用用户访问令牌查询/我/帐户以获取页面ID&访问令牌

然后你所要做的就是用id& amp进行API调用。访问令牌在Facebook上发布

“离线”访问

为了发布而不必记录(如果您不是唯一的帖子,则有用),您需要一个永久扩展令牌。所以你基本上应该有一个单独的脚本,你将运行一次以检索该扩展令牌并存储它。

获取扩展访问令牌

为了能够在没有用户登录的情况下发帖,您需要为您的页面设置永久访问令牌。

这是一个基本的运行:

  • 让用户允许具有适当权限的应用(manage_pages,publish_stream)
  • Retreive用户访问令牌
  • 更改扩展用户访问令牌的用户访问令牌

以下是我执行此步骤的方法(您也可以使用curl)

$token_url = "https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUT_APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=OLD_TOKEN";
$accessToken = @file_get_contents($token_url);

然后

  • 使用用户扩展访问令牌查询/我/帐户以获取页面
  • 更改扩展访问令牌的页面访问令牌(代码与 以上)

(根据文档,最后一步不应该是必要的,因为当您使用扩展用户令牌查询/ me / accounts时,您应该获得扩展页面令牌,但在我的情况下它不起作用)

并且您获得永久访问令牌,只有在用户更改密码或禁止该应用程序时才会过期。您所要做的就是将其与页面的ID一起存储,并在需要API调用的任何地方将其发送到Facebook。

php sdk已有详细记录,因此您不应该遇到谷歌搜索无法解决的任何问题。寻找2012年9月之后的线程流量没有改变,因为php sdk都没有。