如何计算FB页面上的喜欢?

时间:2012-08-27 18:40:44

标签: facebook facebook-like

我必须做一个非常简单的操作,但我的编程技巧还不够。我必须在Facebook页面中统计喜欢并在我的网站上打印该号码。我有两个脚本可以很好地完成普通网站的工作,但是他们不想显示页面的喜欢数量。

<?php
$source_url = "http://www.facebook.com/";  //This could be anything URL source  including stripslashes($_POST['url'])
$url = "http://api.facebook.com/restserver.php?method=links.getStats&urls=".urlencode($source_url);
$likes =  $xml->link_stat->like_count;
$comments = $xml->link_stat->comment_count;
$total = $xml->link_stat->total_count;
$max = max($shares,$likes,$comments);
echo $likes;
?>

<?php
$fql  = "SELECT url, normalized_url, share_count, like_count, comment_count, ";
$fql .= "total_count, commentsbox_count, comments_fbid, click_count FROM ";
$fql .= "link_stat WHERE url = 'http://www.apple.com/'";
$apifql="https://api.facebook.com/method/fql.query?format=json&query=".urlencode($fql);
$json=file_get_contents($apifql);
print_r( json_decode($json));
?>

这两个脚本都适用于普通的网站,但不能获取fb页面喜欢的数字。可能是我应该以其他格式输入链接?

我可以使用这个http://graph.facebook.com/?ids=AutoSpecCenter这样的图表来获取所需数据,只需输入这样的页面名称即可。但我不知道如何操纵这些数据。

6 个答案:

答案 0 :(得分:7)

正如您在问题中所写,您可以通过Facebook的Graph API查询此类信息。这个简短的例子将获得可口可乐页面的信息,解码JSON并输出喜欢页面$data->likes的人数。

<?php 
$ch = curl_init("https://graph.facebook.com/CocaCola?access_token=<Access Token>");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$raw = curl_exec($ch);
curl_close($ch);

$data = json_decode($raw);
echo $data->likes . " people like Coca-Cola";
?>

如果您需要执行更多任务而不仅仅是获取某个页面,请考虑使用Facebook SDK作为 cpilko 建议。

答案 1 :(得分:2)

这是快速而肮脏的方式:

<?php
$fb_id = 'AutoSpecCenter';
$url = 'https://graph.facebook.com/' . urlencode($fb_id);
$result = json_decode( file_get_contents($url) );
printf("<p>There are %s people who like %s</p>", $result->likes, $result->name);

您最好安装Facebook PHP SDK或使用cURL来实现此目的。

您也可以将$fb_id设置为等于网址。

答案 2 :(得分:1)

这里也是一个简单的方法......

<?php $page_id = 'yourfbpageid'; // your facebook page id $xml = @simplexml_load_file("http://api.facebook.com/restserver.php?method=facebook.fql.query&query=SELECT%20fan_count%20FROM%20page%20WHERE%20page_id=".$page_id."") or die ("a lot"); $fans = $xml->page->fan_count; ?> <li class="text white"><span></span><?php echo $fans.' Fans'; ?></li>

礼貌:ravi patel

答案 3 :(得分:1)

这对我有用

<?php
function getData($username){

$access_token = 'YOUR ACCESS TOKEN'; //Replace it with your Access Token
$json = json_decode(file_get_contents("https://graph.facebook.com/".$username."?fields=fan_count&access_token=".$access_token),true);
return $json;
}

$data = getData("Mypage");//Replace it with your Username


$likes = $data['fan_count'];
echo "Facebook Likes: ".$likes;

?>

答案 4 :(得分:0)

我遇到了同样的问题,只需在参数中添加likes.summary(true),comments.summary(true)以对抗为我工作的“字段”。

e.g。我使用了https://graph.facebook.com/me/feed?access_token=ACCESS_TOKEN&fields=story,from,story_tags,likes.summary(true),comments.summary(true)

而不是https://graph.facebook.com/me/feed?access_token=ACCESS_TOKEN

如果需要,您还可以添加其他参数;由a分隔,

此外,如果你想要单个帖子的数量,你可以使用

https://graph.facebook.com/POST_ID/likes?summary=true&access_token=ACCESS_TOKEN

喜欢计数

    https://graph.facebook.com/POST_ID/comments?summary=true&access_token=ACCESS_TOKEN

评论计数

答案 5 :(得分:0)

试试此代码

<?php echo facebooklike('209414452444193');

      function facebooklike($page_id){

       $likes = 0; //Initialize the count  
       //Construct a Facebook URL
       $json_url ='https://graph.facebook.com/'.$page_id.'';
       $json = get_contents($json_url);
       $json_output = json_decode($json);

      //Extract the likes count from the JSON object
      if($json_output->likes){
        $likes = $json_output->likes;
      }
      return $likes;   
    }
    function get_contents($url){
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
       $data = curl_exec($ch);
       curl_close($ch);
       return $data;
    }
?>