首页 文章

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

提问于
浏览
40

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

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

没有可用的RSS,所以你有任何使用php sdk直接发布到Facebook粉丝页面(不是用户墙)的例子吗?

谢谢!

4 回答

  • 1

    最后,经过大量测试后,它没有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页面中 .

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

  • 0

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

    Working solution for API v.2.5

    • 获取 code for 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

    • 根据 codeapp_idapp_secret 获取 access_token ,因为 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

    • 基于 access_token 获取 page_id 永不过期 page_access_token

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

  • 4

    作为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%,这是获取长期页面令牌所必需的 .

    Read More

    • 现在,获取您的Facebook页面列表,

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

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

    Facebook也说:

    生成的页面访问令牌将没有任何到期时间 .

    Read More

  • 78

    Here is the resource you are looking for . 向下滚动到 Page Login 并从那里读取 . 您必须获取页面的访问令牌,然后在发布时使用该令牌 . 这假设您希望自己的帖子显示为"from the page" . IE - 发布就好像你是页 .

    可以在facebook文档的this url找到实际调用图形api创建一个post对象,以及如何执行它 .

相关问题