这是PHP的最终尝试,如果失败,我将使用JS。所以我的目标是通过PHP在FB页面上以“页面名称”的形式发布:这就是我想要的
但是我所得到的如下图所示。另外,它仅对此个人资料可见(对喜欢的人/ppl/不可见)。
这是我当前的代码
function post_facebook($data=null, $redir = null){
$result = "";
require_once (ROOT. "/apps/configuration/models/ConfigurationItem.php");
require_once (ROOT . "/components/facebook/facebook.php");
$this->ConfigurationItem = new ConfigurationItem($this->getContext());
$row=$this->ConfigurationItem->findByCatKeyItemKey('system','facebook_login');
$apiid=$row['value']; <= Correct apiid
$row=$this->ConfigurationItem->findByCatKeyItemKey('system','facebook_pass');
$secret=$row['value']; <= Correct secret key
$facebook = new Facebook(array(
'appId' => $apiid,
'secret' => $secret,
'cookie' => true,
));
$session = $facebook->getSession();
$me = null;
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
$message=$data['facebook_text'];
$attachment = array(
'message' => $data['facebook_text'],
'name' => $data['name'],
'link' => $this->getLinkToLatestNews(),
'description' => '',
);
try {
$facebook->api('/PAGE ID/feed/', 'post', $attachment);
$result = "Facebook: Sent";
} catch (FacebookApiException $e) {
$result = "Facebook: Failed";
error_log($e);
}
} else {
$login_url = $facebook->getLoginUrl();
header("Location: ".$login_url);
exit;
}
echo $result;
exit;
//return $result;
}
我做错了什么?我在API文档/Google最佳搜索结果中找不到任何内容,仅适用于JS。感谢帮助!
最佳答案
您需要确保您正在请求用户的“manage_pages”权限。一旦知道了,您就可以做$facebook->api('/me/accounts')
,您会收到一个 token 返回(连同页面信息一起),您可以将其用作页面发布在页面上。
关于php - Facebook Graph API PHP SDK逐页发布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4055440/