我正在建立一个网站,我需要检索Facebook共享,并喜欢来自不同网站的众多链接和网址。
问题是,对于某些网址,我们无法获得我想要的内容。例如,当我查找有关http://www.example.com/?a=1&b=2&c=3
的链接的数据时,我得到的是关于http://www.example.com/?a=1
的错误数据,而其他网址(&b=2&c=3
)则被Facebook忽略。
在StackOverflow,很多人都在寻找答案,很多问题都没有答案。所以,一旦我做对了,我就回去告诉我是怎么做到的。
P.S。 :这仅适用于非Facebook网址。如果您正在寻找股票并喜欢内部Facebook链接的数量(图像,视频...),这将不适合您。我将使用PHP来回答这个问题。
答案 0 :(得分:0)
为了获得喜欢和分享计数,我使用FQL而不是Graph API(即使我实际上使用Graph API来发送查询)。
但这还不够:为了能够这样做,我在我想要获取数据的URL上调用了rawurlencode()
函数。否则,我会不断收到错误。
所以,这个likes()
,我用来计算的函数:
function likes($url) {
$url = rawurlencode($url);
$json_string = file_get_contents("http://graph.facebook.com/fql?format=json&q=SELECT%20share_count,%20like_count%20FROM%20link_stat%20WHERE%20url='$url'");
$json = json_decode($json_string, true);
if (key_exists("data", $json)) {
if (is_array($json["data"])) {
if (array_key_exists("0", $json["data"])) {
return intval($json["data"]["0"]["share_count"]) + intval($json["data"]["0"]["like_count"]);
} else {
echo "Error : '0' is no key<br/>";
return 0;
}
} else {
echo "Error : data is no table <br/>";
return 0;
}
} else {
echo "Error : No data key <br/>";
return 0;
}
}
我希望有一天能帮助某人:)