该脚本的目标是在创建内容后,在我的个人资料和我的群组中自动发布指向特定页面的链接。
但是我在下面启动测试脚本时获得的是这个返回的字符串:
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'];
?>
答案 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'
即可