简单的例子,通过PHP发布到Facebook粉丝页面?
我做了很多search,我发现过时的教程不起作用…
我有一个使用PHP制作的网站,当我在我的pipe理区域提交特定的表单时,我想发布到我的Facebook“粉丝页面”
没有可用的RSS,所以你有任何例子,直接张贴到Facebook粉丝页面(不是用户墙)使用PHP SDK?
谢谢!
最后,经过大量的testing,它工作,没有PHP的SDK。 这是一步一步的指导:
1.获取权限和页面令牌
转到https://developers.facebook.com/tools/explorer/并从左侧的第一个下拉菜单中select您的应用程序。;
点击“获取访问令牌”button,并在“select权限”窗口中,点击“扩展权限”,并检查manage_pages和publish_stream,并点击“获取访问令牌”蓝色button。
您可能会被要求在这一步授予您的应用程序访问您的Facebook帐户的权限,接受。
接下来,点击“GET”下拉菜单旁边的文本字段的末尾,并replace:me / accounts的号码,然后点击此文本字段旁边的蓝色button。
您将获得所有页面的标记,包括您的应用程序页面。 在列表中find您的页面名称,将如下所示: “名称”:“您的页面名称”
当您find您的页面时,复制该页面的访问令牌(将会非常长),如下所示: “access_token”:“XXXXXXXX” 。 也复制页面的ID:“ ID”:“XXXXX” 。
就是这一步,我们现在就可以开始编码。
2.通过PHP发布到你的页面墙上
首先,对于这个脚本,你需要一个支持curl的服务器。
我们开始定义页面访问令牌的PHP文档以及我们在第一步获得的页面ID:
<?php $page_access_token = 'XXXXXXX'; $page_id = 'YYYYYYYY';
之后,我们创build一个包含信息的数组发布到我们的页面墙上:
$data['picture'] = "http://www.example.com/image.jpg"; $data['link'] = "http://www.example.com/"; $data['message'] = "Your message"; $data['caption'] = "Caption"; $data['description'] = "Description";
您当然可以使用https://developers.facebook.com/docs/reference/api/post/中描述的任何其他后期参数,如果您不需要上述一个或多个参数,则可以简单地将其删除。;
好的,现在我们在数组中添加访问令牌:
$data['access_token'] = $page_access_token;
我们设置了我们的postURL,在我们的页面上发布:
$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';
最后一步,我们将使用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); ?>
之后,我们可以保存我们的PHP文档,并尝试执行它。 该post可能会出现在我们的Facebook页面。
希望这个代码可以帮助其他有相同问题的人!
您可以使用Facebook访问令牌debugging器来testing令牌
适用于API v.2.5的工作解决scheme
- 获取
app_id
code
作为app_id
参数
https://www.facebook.com/dialog/oauth?client_id=".$app_id."&redirect_uri=".$response_uri."&response_type=code&scope=manage_pages,publish_pages
- 根据
response_uri
结果获取基于code
,app_id
和app_secret
access_token
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
- 根据
access_token
获取永不过期的page_access_token
https://graph.facebook.com/v2.5/".$page_id."?fields=access_token&access_token=".$access_token
这里是你正在寻找的资源 。 向下滚动到Page Login
并从那里读取。 您必须为您的页面获取访问令牌,然后在发布时使用该令牌。 这是假设你想让你的post“从页面”出现。 IE – 张贴,如果你是页面。
实际调用图api创build一个post对象,以及如何做到这一点,可以在Facebook的文档中find这个URL 。
作为nmarti答案的补充。 适用于API v.2.4。
如果你不想去Facebook API控制台,而是做API调用,有一些说明。
首先,您必须拥有Facebook用户,在您要发布的页面上作为pipe理员,还必须创buildFacebook应用程序才能继续。
- 做login请求,获取用户令牌:
作为回应,你应该得到%user-token%,保存它,你将需要在下一步。
阅读更多
- 要求长寿的令牌:
现在,您将获得长寿命的页面令牌所需的%长寿命令牌%。
阅读更多
- 现在,得到你的Facebook页面的列表,
https://graph.facebook.com/v2.4/%page-admin-user-id%/accounts/?access_token=%long-lived-token%
在列表中查找您的页面和页面标记,现在您可以继续使用nmarti示例发布到页面。
Facebook还说:
生成的页面访问令牌不会有任何到期时间。
阅读更多