Я создаю веб-сайт, где мне нужно получить доли в Facebook, а также множество ссылок и URL-адресов с разных сайтов.
Проблема в том, что для некоторых URL-адресов невозможно получить то, что я хотел. Например, когда я ищу данные о ссылках, которые выглядят как http://www.example.com/?a=1&b=2&c=3
все, что я получаю, это неверные данные о http://www.example.com/?a=1
а остальная часть URL-адреса ( &b=2&c=3
) просто игнорируется Facebook.
Здесь, в StackOverflow, многие люди ищут ответ, и многие вопросы просто остаются без ответа. Итак, как только я сделал это правильно, я вернулся, чтобы рассказать, как я это сделал.
PS: Это работает только для URL-адресов, отличных от Facebook. Если вы ищете акции и любит подсчет внутренней ссылки Facebook (изображение, видео …), это не сработает для вас. Я буду использовать PHP для ответа на вопрос.
Чтобы получить количество просмотров и просмотров, я использую FQL вместо Graph API (хотя я действительно использую Graph API для отправки запроса).
Но этого недостаточно: чтобы это сделать, я вызывал rawurlencode()
в URL-адресе, о котором я хочу получить данные. В противном случае я буду получать ошибки.
Итак, это 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; } }
Надеюсь, это когда-нибудь поможет кому-то 🙂