简单的例子,通过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

  1. 获取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

  1. 根据response_uri结果获取基于codeapp_idapp_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

  1. 根据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应用程序才能继续。

  1. 做login请求,获取用户令牌:

https://www.facebook.com/dialog/oauth?client_id=%app-id%&redirect_uri=%your-site-url%&response_type=token&scope=manage_pages,publish_pages

作为回应,你应该得到%user-token%,保存它,你将需要在下一步。

阅读更多

  1. 要求长寿的令牌:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=%app-id%&client_secret=%app-secret%&fb_exchange_token=%user-token%

现在,您将获得长寿命的页面令牌所需的%长寿命令牌%。

阅读更多

  1. 现在,得到你的Facebook页面的列表,

https://graph.facebook.com/v2.4/%page-admin-user-id%/accounts/?access_token=%long-lived-token%

在列表中查找您的页面和页面标记,现在您可以继续使用nmarti示例发布到页面。

Facebook还说:

生成的页面访问令牌不会有任何到期时间。

阅读更多

Interesting Posts