Home News

О новых методах работы Facebook API Graph 2.1 и выше

06.09.2018

видео О новых методах работы Facebook API Graph 2.1 и выше

Как легко добавить ленту из Twitter на любой сайт

7 августа 2016 года Facebook официально прекратил поддержку API Graph 2.0, а с ним и старого FQL (Facebook Query Language), с помощью которого мы раньше запрашивали количество лайков , репостов и другие данные.



В API Graph 2.0 запросы осуществлялись без авторизации. В новых версиях для выполнения запросов необходимо получение токенов. В противном случае в ответ получим: « An access token is required to request this resource ».

{ "error": { "message": "An access token is required to request this resource.", "type": "OAuthException", "code": 104, "fbtrace_id": "CcKj4y89cpL" } }

Как видим, для доступа требуется  токен . Чтобы его получить понадобится идентификатор приложения и его т.н. секрет:


Google I/O Keynote (Google I/O '17)

Эти данные нужно сохранить, они понадобятся при выполнении запросов.

Как получить число подписчиков страницы в Facebook с помощью новых версий API Graph

В примерах я буду использовать самую свежую на данный момент версию API Graph 2.8.


Bruce Feiler: Agile programming -- for your family

На самом деле все очень просто, создаём функцию fb_fans_count() .

function fb_fans_count($fbid,$app_id,$app_secret) { $urls = 'https://graph.facebook.com/v2.8/'. $fbid . '?fields=fan_count&access_token='. $app_id . '|' . $app_secret; $string = @file_get_contents( $urls ); if($string) { $fan_count = json_decode( $string ); $get_fan_count = $fan_count->fan_count; return $get_fan_count; } }

В WordPress функцию можно вынести в functions.php , а ещё лучше в функциональный плагин .

Функция вызывается следующим образом:

echo fb_fans_count($fbid,$app_id,$app_secret); $fbid — идентификатор страницы. Для страницы https://www.facebook.com/danilin.biz в качестве $fbid можно использовать «danilin.biz», например. $app_id — идентификатор приложения. $app_secret — секрет приложения.

Как получить число репостов страницы в Facebook с помощью новых версий API Graph

Функция fb_post_share_count() похожа на предыдущую, в WordPress ее можно аналогично вынести в functions.php или плагин.

function fb_post_share_count($url,$app_id,$app_secret) { $urls = 'https://graph.facebook.com/v2.8/?id='. urlencode($url) . '&access_token='. $app_id . '|' . $app_secret; $string = @file_get_contents( $urls ); if($string) { $fan_count = json_decode( $string,true ); return intval($fan_count['share']['share_count']); } }

Функция вызывается аналогичным образом с передачей $app_id и $app_secret . В качестве $url указывается URL запрашиваемой страницы.

echo fb_post_share_count($url,$app_id,$app_secret);

Вызов функции в WordPress можно осуществить, задав в качестве $url  функцию WordPress  get_permalink() . Тогда $url будет подставляться автоматически. Например, так:

echo fb_post_share_count(get_permalink(), $app_id,$app_secret);

Обратите внимание.

Работа функций протестирована на Facebook API Graph версий 2.1-2.8. Их работоспособность на более новых версиях не гарантируется, но и не исключается. Постараюсь своевременно оповещать обо всех изменениях в API.

Всё самое новое и интересное я публикую в своём Телеграм-канале . Подписывайтесь!

rss