通过PHP发布到Facebook粉丝页面的简单示例?

nma*_*rti 43 php facebook facebook-wall facebook-graph-api facebook-fan-page

我做了很多搜索,我发现过时的教程不起作用......

我有一个用PHP制作的网站,当我在我的管理区域提交一个特定的表单时,我想发布到我的Facebook"粉丝页面"

没有RSS可用,所以你有什么例子来直接发布到使用PHP SDK中的Facebook粉丝页面(不是用户墙)?

谢谢!

nma*_*rti 84

最后,经过大量测试后,它没有PHP SDK.这是一步一步的指南:

1.获取权限和页面令牌

转到https://developers.facebook.com/tools/explorer/,然后从左侧的第一个下拉菜单中选择您的应用.

单击"获取访问令牌"按钮,在"选择权限"窗口中,单击"扩展权限"并检查manage_pages和publish_stream,然后单击"获取访问令牌"蓝色按钮.

您可能会在此步骤中要求您授予您的应用访问您的Facebook帐户的权限,接受.

接下来,单击"GET"下拉列表旁边的文本字段末尾,并替换:me/accounts的数字,然后单击此文本字段旁边的蓝色按钮.

您将获得所有页面的令牌,包括您的应用页面.在列表中找到您的页面名称,如下所示:"name":"您的页面名称"

找到页面后,复制页面的访问令牌(会很长),如下所示:"access_token":"XXXXXXXX".同时复制页面的ID:" id":"XXXXX".

这就是这一步,我们现在可以开始编码了.

2.通过PHP发布到您的页面墙

首先,对于这个脚本,你需要一个支持curl的服务器.

我们启动定义页面访问令牌的PHP文档以及我们在第1步中获得的页面ID:

<?php
$page_access_token = 'XXXXXXX';
$page_id = 'YYYYYYYY';
Run Code Online (Sandbox Code Playgroud)

之后,我们创建一个数组,其中包含要发布到页面墙的信息:

$data['picture'] = "http://www.example.com/image.jpg";
$data['link'] = "http://www.example.com/";
$data['message'] = "Your message";
$data['caption'] = "Caption";
$data['description'] = "Description";
Run Code Online (Sandbox Code Playgroud)

您当然可以使用https://developers.facebook.com/docs/reference/api/post/中描述的任何其他post参数,如果您不需要上面的一个或多个参数,则只需将其删除即可.

好的,此时我们向数组添加访问令牌:

$data['access_token'] = $page_access_token;
Run Code Online (Sandbox Code Playgroud)

我们设置了帖子网址,在我们的页面中发布:

$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';
Run Code Online (Sandbox Code Playgroud)

最后一步,我们将使用curl在页面墙中发布消息:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
curl_close($ch);
?>
Run Code Online (Sandbox Code Playgroud)

之后,我们可以保存我们的PHP文档,并尝试执行它.该帖子可能会出现在我们的Facebook页面中.

希望此代码能够帮助其他人遇到同样的问题!

  • 如果我检查令牌的细节,它说它只持续60分钟.如何获得一次性令牌,以便我的php脚本可以自动发布到粉丝页面? (7认同)
  • 如果有兴趣的话,我得到了扩展令牌[这里](http://stackoverflow.com/a/20894578/1901781)的答案. (4认同)

bq2*_*q23 5

您可以使用Facebook Access Token Debugger测试令牌

API v.2.5 的工作解决方案

  1. codeapp_id作为参数response_uri

https://www.facebook.com/dialog/oauth?client_id=".$app_id."&redirect_uri=".$response_uri."&response_type=code&scope=manage_pages,publish_pages

  1. 获取access_token基于codeapp_idapp_secret作为结果response_uri

https://graph.facebook.com/oauth/access_token?grant_type=authorization_code&client_id=".$app_id."&client_secret=".$app_secret."&code=".$code."&redirect_uri=".$response_uri

  1. 获取永不过期page_access_tokenpage_id基于access_token

https://graph.facebook.com/v2.5/".$page_id."?fields=access_token&access_token=".$access_token