【问题标题】:How to publish a post on a Facebook Fan Page as Page Owner or Admin in Graph API如何在 Graph API 中以页面所有者或管理员的身份在 Facebook 粉丝页面上发布帖子
【发布时间】:2015-11-29 05:47:00
【问题描述】:

我正在做一个需要在 Facebook 页面上发布帖子的 PHP 项目。例如,我有一个电子商务网站。当我创建一个产品时,新产品的链接将在电子商务的 Facebook 页面上共享。现在我用这种方式在 Facebook Graph API explorer tool (https://developers.facebook.com/tools/explorer) 上进行测试。

  1. 我生成了一个具有正确权限的 access_token,尤其是(manage_pages 和 publish_actions)。

  2. 我向这个 URL 和这个字段发送一个 HTTP POST 方法:

    • 网址 - {page-id}/feed

    • 字段 - mesasge={message} , published=true , link={link}

当我去查看我的 Facebook 粉丝页面时,它只是作为访客帖子发布。我的意思是由访问者(打开 Facebook 粉丝页面的帐户)发布,而不是以网站管理员或网站所有者的身份发布。该帖子不被视为由粉丝专页发布。

【问题讨论】:

    标签: php facebook api facebook-graph-api


    【解决方案1】:

    最后,经过大量测试,它可以在没有 PHP SDK 的情况下运行。这是分步指南:

    Get permissions and the page token:
    

    转到https://developers.facebook.com/tools/explorer/ 并从左侧的第一个下拉菜单中选择您的应用。

    点击“Get access token”按钮,在“Select Permissions”窗口中,点击“Extended Permissions”,勾选manage_pages和publish_stream,点击“Get Access Token”蓝色按钮。

    在此步骤中,您可能会被要求保证您的应用有权访问您的 Facebook 帐户,请接受。

    接下来,单击“GET”下拉列表旁边的文本字段末尾,将数字替换为:我/帐户,然后单击此文本字段旁边的蓝色按钮。

    您将获得所有页面的令牌,包括您的应用页面。在列表中找到您的页面名称,将如下所示:“名称”:“您的页面名称”

    找到页面后,复制页面的访问令牌(会很长),如下所示:"access_token": "XXXXXXXX"。同时复制页面的id:“id”:“XXXXX”。

    这一步就到此为止了,我们现在可以开始编码了。

    Post to your page wall via PHP
    

    首先,对于这个脚本,您需要一个支持 curl 的服务器。

    我们开始定义页面访问令牌和我们在第一步中获得的页面 id 的 PHP 文档:

    <?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 页面中。

    【讨论】:

    • 你也可以通过这个链接获得帮助kerstner.at/en/2012/03/…
    • 谢谢你,我会试一试,然后我会把它变成绿色
    • 除了 curl request 之外,这工作正常。 CURL 没有任何响应。但我再次调用了使用图形 API 资源管理器。它工作得很好。但是我必须将它作为 CURL 中的请求字段发送吗?意味着作为参数?还是必须在 HTTP 标头中传递?
    • 您需要在本地主机上启用 CURL
    • 您可以按照以下步骤启用CURL stackoverflow.com/questions/13021536/…
    猜你喜欢
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多