我做了很多搜索,我发现过时的教程不起作用......
我有一个用PHP制作的网站,当我在管理区域提交特定表单时,我想发布到我的Facebook“粉丝页面”
没有可用的RSS,所以你有任何使用php sdk直接发布到Facebook粉丝页面(不是用户墙)的例子吗?
谢谢!
答案 0 :(得分:80)
最后,经过大量测试后,它没有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';
之后,我们创建一个数组,其中包含要发布到我们页面墙的信息:
$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;
我们设置了帖子网址,在我们的页面中发布:
$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文档,并尝试执行它。该帖子可能会出现在我们的Facebook页面中。
希望此代码能够帮助遇到同样问题的其他人!
答案 1 :(得分:4)
您可以使用测试令牌 Facebook Access Token Debugger
API v.2.5的工作解决方案
code
的{{1}}作为app_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
access_token
,code
和app_id
获取app_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
page_access_token
永远不会过期page_id
醇>
access_token
答案 2 :(得分:2)
作为nmarti答案的补充。适用于API v.2.4。
如果你不想去Facebook API控制台,而是做API调用,那就有一些说明。
首先,您必须拥有Facebook用户,在您要发布的页面上是管理员,您还必须创建Facebook App才能继续。
作为回应,您应该获得%user-token%,保存它,您将在下一步中使用。
现在你将拥有%long-lived-token%,这是获取长期页面令牌所必需的。
https://graph.facebook.com/v2.4/%page-admin-user-id%/accounts/?access_token=%long-lived-token%
在列表中查找您的页面和页面令牌,现在您可以继续使用nmarti示例发布到页面。
Facebook也说:
生成的页面访问令牌将没有任何到期时间。
答案 3 :(得分:0)
Here is the resource you are looking for。向下滚动到Page Login
并从那里阅读。
您必须获取页面的访问令牌,然后在发布时使用该令牌。这假设您希望您的帖子“从页面”显示。 IE - 发布就像你是页面一样。
实际调用图形api来创建一个post对象,以及如何操作,可以在facebook文档的this url找到。