如何获取 Facebook 页面的点赞数
How to get number of Facebook page likes
我的以下脚本不再显示 fb-page-likes 的数量...
$ch = curl_init("http://graph.facebook.com/FACEBOOKPAGE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$raw = curl_exec($ch);
curl_close($ch);
$data = json_decode($raw);
$scm_fb = $data->likes;
echo $scm_fb;
我也尝试了以下代码,但这也没有显示任何内容...
$page_id = "FACEBOOKPAGE";
$likes = 0; //Initialize the count
//Construct a Facebook URL
$json_url ='https://graph.facebook.com/'.$page_id.'';
$json = file_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;
}
(我也尝试了 Facebook-Page-ID 而不是 pagename,结果是一样的)
有什么建议吗?
如果不将您的 access_token 提供给 Facebook Graph API,您将无法获得任何页面 API。
你的URL应该是这样的
https://graph.facebook.com/v2.2/{YOUR_PAGE_ID}?fields=like&access_token={YOUR_ACCESS_TOKEN}
如果您想了解如何使用 Graph API 以及如何生成您的 access_token,请尝试访问以下链接。
FACEBOOK 图表 API - 页面
https://developers.facebook.com/docs/graph-api/reference/v2.2/page
访问令牌 - Pagetoken
https://developers.facebook.com/docs/facebook-login/access-tokens#pagetokens
图表API探索者
您可以使用图 api 获取具有相应访问令牌的页面的详细信息。如果您已经拥有有效的访问令牌,请使用以下代码获取页面详细信息。
$fb_page = '';
$access_token = '';
$url = "https://graph.facebook.com/v2.2/".$fb_page.'?access_token='.$access_token;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
curl_close($curl);
$details = json_decode($result,true);
echo "Likes:".$details['likes'];
您可以通过使用此 php 代码段解析 Facebook Like Widget 源代码来获得任何图形对象或 url 赞:
<?php
$id = "youtubetabapp";
// customize: "https://facebook.com/[customize]"
$url = "https://facebook.com/$id"; // by name
//$url = "https://facebook.com/282374908483303"; // or by id
// customize: "locale=[customize]&" to your needs
$ch = curl_init("https://www.facebook.com/v2.5/plugins/like.php?locale=$locale&href=".$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Safari');
$html = curl_exec($ch);
//die( var_dump( $html ) ); // <- debug fetched data
// have a look for the data you need and customize your regex pattern accordingly
// "preg_match([customize], $html, $match);"
preg_match("/([0-9,.]+[a-zA-Z,\S]) people like this./", $html, $match);
$likes = $match[1];
//$likes = str_replace(array(".", "K"), array("", "000"), $likes); // <- customize output | remove ".", replace "K" with "000"
//$likes = (float)$likes; // <- customize output | change type to float, strips prepending non-digits (eg: "K") as well
die( $likes );
?>
与 API 方法相比,您无需提供任何令牌,只需一个请求。根据我的测试——你只需要保留 locale
参数来确保你有不变的解析源代码。
我的以下脚本不再显示 fb-page-likes 的数量...
$ch = curl_init("http://graph.facebook.com/FACEBOOKPAGE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$raw = curl_exec($ch);
curl_close($ch);
$data = json_decode($raw);
$scm_fb = $data->likes;
echo $scm_fb;
我也尝试了以下代码,但这也没有显示任何内容...
$page_id = "FACEBOOKPAGE";
$likes = 0; //Initialize the count
//Construct a Facebook URL
$json_url ='https://graph.facebook.com/'.$page_id.'';
$json = file_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;
}
(我也尝试了 Facebook-Page-ID 而不是 pagename,结果是一样的)
有什么建议吗?
如果不将您的 access_token 提供给 Facebook Graph API,您将无法获得任何页面 API。
你的URL应该是这样的
https://graph.facebook.com/v2.2/{YOUR_PAGE_ID}?fields=like&access_token={YOUR_ACCESS_TOKEN}
如果您想了解如何使用 Graph API 以及如何生成您的 access_token,请尝试访问以下链接。
FACEBOOK 图表 API - 页面
https://developers.facebook.com/docs/graph-api/reference/v2.2/page
访问令牌 - Pagetoken
https://developers.facebook.com/docs/facebook-login/access-tokens#pagetokens
图表API探索者
您可以使用图 api 获取具有相应访问令牌的页面的详细信息。如果您已经拥有有效的访问令牌,请使用以下代码获取页面详细信息。
$fb_page = '';
$access_token = '';
$url = "https://graph.facebook.com/v2.2/".$fb_page.'?access_token='.$access_token;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
curl_close($curl);
$details = json_decode($result,true);
echo "Likes:".$details['likes'];
您可以通过使用此 php 代码段解析 Facebook Like Widget 源代码来获得任何图形对象或 url 赞:
<?php
$id = "youtubetabapp";
// customize: "https://facebook.com/[customize]"
$url = "https://facebook.com/$id"; // by name
//$url = "https://facebook.com/282374908483303"; // or by id
// customize: "locale=[customize]&" to your needs
$ch = curl_init("https://www.facebook.com/v2.5/plugins/like.php?locale=$locale&href=".$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Safari');
$html = curl_exec($ch);
//die( var_dump( $html ) ); // <- debug fetched data
// have a look for the data you need and customize your regex pattern accordingly
// "preg_match([customize], $html, $match);"
preg_match("/([0-9,.]+[a-zA-Z,\S]) people like this./", $html, $match);
$likes = $match[1];
//$likes = str_replace(array(".", "K"), array("", "000"), $likes); // <- customize output | remove ".", replace "K" with "000"
//$likes = (float)$likes; // <- customize output | change type to float, strips prepending non-digits (eg: "K") as well
die( $likes );
?>
与 API 方法相比,您无需提供任何令牌,只需一个请求。根据我的测试——你只需要保留 locale
参数来确保你有不变的解析源代码。