繁体   English   中英

通过Facebook API发布到页面

[英]Post to page via Facebook API

我是FB应用程序和FB页面的管理员(但此页面位于单独的帐户中)。 如何使用FB API和PHP通过此FB应用程序将某些内容发布到此页面的墙上(以便能够使用CRON进行此操作)? 那可能吗? 预先感谢您的回答!

对的,这是可能的。

首先,使用页面访问令牌代表页面发布

从您的应用中获取普通令牌(可以通过右上角的下拉菜单选择您的应用来直接使用Graph API Explorer ),并获得以下权限: manage_pages ,然后按照我在这里提到的步骤进行操作: https : //stackoverflow.com / a / 18322405/1343690-这将使您获得永不过期的页面访问令牌。

将其保存在某处,并在发布时与您的cron-job一起使用。 发布代码-

$url = 'https://graph.facebook.com/{page-id}/feed';
$attachment =  array(
    'access_token'  => $page_access_token,
    'message'  => '{your-message}'
);
$result = PostUsingCurl($url, $attachment);
$result = json_decode($result, TRUE);
if( isset($result['error']) ) {
   echo "Error: ".$result['error']['message']."<br/>";
}
else{
  echo "Feed posted successfully!<br/>";
}

function PostUsingCurl($url, $attachment)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    curl_close ($ch);

    return $result;
}

将Api添加到您的页面

<script id="facebook-jssdk" src="//connect.facebook.net/en_US/all.js#xfbml=1"></script>`

点击功能调用FB页面

$('#facebook').click(function(){
  FB.init({
    appId: 12345, // your app ID
    status: true,
    cookie: true
  });
  FB.ui({
    method: 'feed',
    name: "post name",
    link: "http://postlink.com,
    //picture: "http:/imageurl.com,
    description: "this is the body of the text"
  });

})  

我个人使用。 虽然您将需要已经生成了一个access_token。 如果不这样做,则可以使用Facebook的Graph Explorer工具向您的帐户授予适当的权限。

$attachment =  array(
"access_token" => $fb_token,
"link" => "$postLink",
"name" => "$postName",
"description" => "$postDescription",
"message" => "$postMessage",
"fb:explicitly_shared" => true
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/'.$fb_page_id.'/feed');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  //to suppress the curl output 
$result = curl_exec($ch);
curl_close ($ch);

希望这会有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM