Facebook API 2.2:尝试发布链接时出现图形错误

时间:2015-10-04 10:17:53

标签: facebook facebook-graph-api

该脚本的目标是在创建内容后,在我的个人资料和我的群组中自动发布指向特定页面的链接。

但是我在下面启动测试脚本时获得的是这个返回的字符串:

Graph returned an error: An active access token must be used to query information about the current user.

事实上,与应用程序相关的令牌由FB Developers网站提供。 我也尝试了这个组合:

634060413388093|9ed702cc524a1cbb59ca1fb7a17839f1

但我仍然得到相同的回报

<?php
$path = getcwd();

require_once $path . '/include/Facebook/autoload.php';

$fb = new Facebook\Facebook([
    'app_id' => '634060413388093',
    'app_secret' => '9ed702cc524a1cbb59ca1fb7a17839f1',
    'default_graph_version' => 'v2.2',  ]);

$linkData = [
  'link' => 'http://www.example.com/page',
  'message' => 'here the new page on my site.',
  ];

try {
    // Returns a `Facebook\FacebookResponse` object
    $response = $fb->post('/me/feed', $linkData, '634060413388093|bnTyPyRtsZSLHoc1B1w772cz3BU');
    } catch  (Facebook\Exceptions\FacebookResponseException $e) {
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    } catch (Facebook\Exceptions\FacebookSDKException $e) {
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }


$graphNode = $response->getGraphNode();
echo 'Posted with id: ' . $graphNode['id'];

?>

2 个答案:

答案 0 :(得分:1)

您需要使用用户访问令牌来读取用户的Feed。 &#39;我&#39;指的是与用户访问令牌关联的用户。应用访问令牌与任何特定用户都没有关联。

这导致了第二点,这一点更为重要。你永远不应该透露你的应用秘密,特别是不要在Stack Overflow或任何公共场合。您应该隐藏SO问题的那一部分,或者更好的是,创建一个新的FB应用程序。

答案 1 :(得分:0)

好的,我在这一刻找到了方法。我试过任何一个例子和他的帮助,任何建议,但它没有成功。 因此,我发布它希望它能帮助其他人解决同样的问题:

访问令牌不是 app_id | app_secret,但它是以另一种方式获得的: 要获得正确的访问权限,请访问:

https://developers.facebook.com

在“工具和支持”下选择“Graph API Explorer” 在右上角,有一个名为“Application”的下拉菜单。 单击并选择已创建的应用程序。 选择显示的“访问令牌”,然后将其复制/粘贴到$linkDAta变量:

旁边的字段中

$response = $fb->post('/me/feed', $linkData, '{access-token}');

此时,按原样启动脚本,结果是:)

修改 如果您需要在群组中发帖,只需使用“'/me/feed'

更改{group_id}/feed'即可