我做了很多搜索,我发现过时的教程不起作用......
我有一个用PHP制作的网站,当我在我的管理区域提交一个特定的表单时,我想发布到我的Facebook“粉丝页面”
没有可用的RSS,所以你有任何使用php sdk直接发布到Facebook粉丝页面(不是用户墙)的例子吗?
谢谢!
最后,经过大量测试后,它没有PHP SDK . 这是一步一步的指南:
1. Get permissions and the page token
转到https://developers.facebook.com/tools/explorer/并从左侧的第一个下拉菜单中选择您的应用 .
单击“获取访问令牌”按钮,在“选择权限”窗口中,单击“扩展权限”并检查manage_pages和publish_stream,然后单击“获取访问令牌”蓝色按钮 .
您可能会在此步骤中要求您授予您的应用访问您的Facebook帐户的权限,接受 .
接下来,单击“GET”下拉列表旁边的文本字段末尾,并替换:me / accounts的数字,然后单击此文本字段旁边的蓝色按钮 .
您将获得所有页面的令牌,包括您的应用页面 . 在列表中找到您的页面名称,如下所示:"name":"Your page name"
找到页面后,复制页面的访问令牌(会很长),如下所示:"access_token":"XXXXXXXX" . 同时复制页面的ID:“id ": " XXXXX” .
这就是这一步,我们现在可以开始编码了 .
2. Post to your page wall via 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/中描述的任何其他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页面中 .
希望此代码能够帮助其他人遇到同样的问题!
你可以使用Facebook Access Token Debugger测试令牌
Working solution for API v.2.5
code
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
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
page_id
page_access_token
https://graph.facebook.com/v2.5/".$page_id."?fields=access_token&access_token=".$access_token
作为nmarti的补充 . 适用于API v.2.4 .
如果你不想去Facebook API控制台,而是做API调用,那就有一些说明 .
首先,您必须拥有Facebook用户,在您要发布的页面上是管理员,您还必须创建Facebook App才能继续 .
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%,保存它,您将在下一步中使用 .
Read More
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%
现在,您将获得%long-lived-token%,这是获取长期页面令牌所必需的 .
https://graph.facebook.com/v2.4/%page-admin-user-id%/accounts/?access_token=%long-lived-token%
在列表中查找您的页面和页面标记,现在您可以继续使用nmarti示例发布到页面 .
Facebook也说:
生成的页面访问令牌将没有任何到期时间 .
Here is the resource you are looking for . 向下滚动到 Page Login 并从那里读取 . 您必须获取页面的访问令牌,然后在发布时使用该令牌 . 这假设您希望自己的帖子显示为"from the page" . IE - 发布就好像你是页 .
Page Login
可以在facebook文档的this url找到实际调用图形api创建一个post对象,以及如何执行它 .
4 回答
最后,经过大量测试后,它没有PHP SDK . 这是一步一步的指南:
1. Get permissions and the page token
转到https://developers.facebook.com/tools/explorer/并从左侧的第一个下拉菜单中选择您的应用 .
单击“获取访问令牌”按钮,在“选择权限”窗口中,单击“扩展权限”并检查manage_pages和publish_stream,然后单击“获取访问令牌”蓝色按钮 .
您可能会在此步骤中要求您授予您的应用访问您的Facebook帐户的权限,接受 .
接下来,单击“GET”下拉列表旁边的文本字段末尾,并替换:me / accounts的数字,然后单击此文本字段旁边的蓝色按钮 .
您将获得所有页面的令牌,包括您的应用页面 . 在列表中找到您的页面名称,如下所示:"name":"Your page name"
找到页面后,复制页面的访问令牌(会很长),如下所示:"access_token":"XXXXXXXX" . 同时复制页面的ID:“id ": " XXXXX” .
这就是这一步,我们现在可以开始编码了 .
2. Post to your page wall via PHP
首先,对于这个脚本,你需要一个支持curl的服务器 .
我们启动定义页面访问令牌的PHP文档以及我们在第1步中获得的页面ID:
之后,我们创建一个数组,其中包含要发布到页面墙的信息:
您当然可以使用https://developers.facebook.com/docs/reference/api/post/中描述的任何其他post参数,如果您不需要上面的一个或多个参数,则只需删除它即可 .
好的,此时我们向数组添加访问令牌:
我们设置了帖子网址,在我们的页面中发布:
最后一步,我们将使用curl在页面墙中发布消息:
之后,我们可以保存我们的PHP文档,并尝试执行它 . 该帖子可能会出现在我们的Facebook页面中 .
希望此代码能够帮助其他人遇到同样的问题!
你可以使用Facebook Access Token Debugger测试令牌
Working solution for API v.2.5
code
forapp_id
作为response_uri
的参数code
,app_id
和app_secret
获取access_token
,因为response_uri
access_token
获取page_id
永不过期page_access_token
作为nmarti的补充 . 适用于API v.2.4 .
如果你不想去Facebook API控制台,而是做API调用,那就有一些说明 .
首先,您必须拥有Facebook用户,在您要发布的页面上是管理员,您还必须创建Facebook App才能继续 .
作为回应,您应该获得%user-token%,保存它,您将在下一步中使用 .
Read More
现在,您将获得%long-lived-token%,这是获取长期页面令牌所必需的 .
Read More
在列表中查找您的页面和页面标记,现在您可以继续使用nmarti示例发布到页面 .
Facebook也说:
Read More
Here is the resource you are looking for . 向下滚动到
Page Login
并从那里读取 . 您必须获取页面的访问令牌,然后在发布时使用该令牌 . 这假设您希望自己的帖子显示为"from the page" . IE - 发布就好像你是页 .可以在facebook文档的this url找到实际调用图形api创建一个post对象,以及如何执行它 .