3

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

我正在尝试在 Facebook 上注册一个应用程序,以便我可以自动发布到公司 Facebook 页面,我是该页面的管理员。

我正在尝试通过 PHP 来做到这一点,我拥有丰富的经验(PHP,而不是 Facebook API。)

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

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

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

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

我该怎么办?

4

1 回答 1

1

设置应用程序

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

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

“在线”访问

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

获取访问令牌

这是一个基本的运行:

  • 让用户登录并允许具有适当权限(manage_pages、publish_stream)的应用程序(如果他没有)
  • 检索用户访问令牌
  • 使用用户访问令牌查询 /me/accounts 以获取页面 ID 和访问令牌

然后您所要做的就是使用 id 和访问令牌进行 API 调用以在 facebook 上发布

“离线”访问

为了在不登录的情况下发帖(如果您不是唯一一个发帖者,这很有用),您需要一个永久扩展令牌。因此,您基本上应该有一个单独的脚本,您将运行一次以检索该扩展令牌并存储它。

获取扩展访问令牌

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

这是一个基本的运行:

  • 让用户允许具有适当权限的应用程序(manage_pages、publish_stream)
  • 检索用户访问令牌
  • 更改扩展用户访问令牌的用户访问令牌

这是我执行此步骤的方法(您也可以使用 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 以获取页面
  • 更改扩展访问令牌的页面访问令牌(与上述代码相同)

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

您会获得一个永久访问令牌,该令牌仅在用户更改密码或禁止该应用程序时才会过期。您所要做的就是将它与页面的 id 一起存储,然后在需要 API 调用发布到 facebook 的任何地方检索它。

php sdk 有很好的文档记录,所以你不应该遇到任何谷歌搜索无法解决的问题。寻找 2012 年 9 月后的线程,因为 php sdk 也没有太大变化,所以流程没有改变。

于 2013-11-11T14:41:14.587 回答