Я пытался выяснить, почему этот запрос к Facebook API возвращает 0 лайков для этой страницы — https://www.facebook.com/Lilyspad58.
Вот запрос:
Отклик:
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true">
<link_stat>
<like_count>0</like_count>
</link_stat>
</fql_query_response>
Вот пример, где API возвращает количество лайков:
Единственное отличие — это страница в параметре url.
Вот код PHP, который я использовал:
function fbLikeCount($url)
{
//Construct a Facebook URL
$req = "https://api.facebook.com/method/fql.query?query=select%20%20like_count%20from%20link_stat%20where%20url=%22$url%22";
$contents = file_get_contents($req);
print "REQ: $req\n";
print "Response: $contents\n";
if ($xml=simplexml_load_string($contents))
{
$likes = $xml->link_stat->like_count;
return($likes);
}
return 0;
}
Я пробовал ряд других страниц Facebook в параметре url, и из того, что я смог определить, он либо работает, либо возвращает 0. Когда он возвращает 0, он всегда возвращает 0. Когда я вручную проверяю страницу в В моем браузере я вижу лайки.
Нет очевидного объяснения, которое я могу найти в документах FB, SO или Google.
Прежде всего: FQL устарел с годами, вы действительно не должны пытаться использовать его больше.
Скорее всего, страница ограничена возрастом или местоположением, поэтому для доступа к ней вам понадобится токен пользователя или токен страницы. Это будет вызов API:
https://graph.facebook.com/Lilyspad58?fields=name,likes
Дополнительная информация о токенах доступа:
Других решений пока нет …