我想做什么:
每次将新内容添加到网站时,都会在Facebook页面上发布帖子,无论我是否登录到Facebook。
现在有效:
在我自己的墙上发布帖子。
我为实现这一目标所做的工作:
接下来,我创建了一个发布内容的脚本,基本上就是这样:
$appId='12822*****98');
$secret='17c*****************320f');
// on récupére l'instance de classe Facebook
$facebook=new Facebook(array(
'appId' => $appId,
'secret' => $secret
));
// acquisition du token
$url='https://graph.facebook.com/oauth/access_token?'.
'client_id='.$appId.
'&client_secret='.$secret.
'&grant_type=client_credentials'. '&scope=read_stream,publish_stream,publish_actions,manage_pages,offline_access'.
'&state=dfgdfgdtgdgfdfg';
$reponse = file_get_contents($url);
$tabReponse=explode('=',$reponse);
$accessToken=$tabReponse[1];
$facebook->setAccessToken($accessToken);
$params = array(
'message' => 'the message',
'link' => 'http://www.myAppUrl.com'),
'name' => 'the name',
'description' => 'some description',
);
try {
// la cible
$targetID='1471*********81';
// publication
$publishStream = $facebook->api("/$targetID/feed/", 'POST', $params);
} catch (FacebookApiException $e) {
$result = $e->getResult();
print("Attention, la publication FB a échoué, veuillez vérifier les paramètres!");
}
如果我打印了第一步提供的访问令牌,我会得到类似{appId}|***************************
(27个字符)的内容,我在this old post上读到的内容是某些操作的有效令牌但不是全部。
有了这个,我可以在我的个人墙上发布,但不能在我管理的页面上发布,在最后一种情况下,我得到#200 error
(关于未授权应用程序执行此操作的用户)。
如果我使用Graph API Explorer为我的应用程序生成访问令牌,我会得到一个代表访问令牌的长字符串,如果我在setAccessToken
调用中使用它,我就可以在页。因为我得到#100 error
(关于必须引用Canvas URL的链接,即使“应用程序设置”中的“Stream post URL security:”设置为Off)
有人知道如何实现我的目标吗?
我不希望任何USER连接,服务器必须请求凭据通过应用程序发布,而不是用户。