Каков метод проверки пользовательского фаната страницы в GRAPH API?
В graph api, страницы.isFan метод не работает, каков метод проверки пользовательского вентилятора страницы в graph api?
Спасибо.
3 ответа:
Обновление 2:
Чтобы проверить, является ли текущий пользователь поклонником страницы Facebook при заходе на вашу вкладку, проверьте этот ответ .
Обновление:
Вы можете использовать соединениеlikes
, чтобы проверить, является ли пользователь поклонником Страницы:https://graph.facebook.com/me/likes/PAGE_ID &access_token=ACCESS_TOKEN
Это вернет либо пустой массив данных:
Array ( [data] => Array ( ) )
Или если вентилятор:
Array ( [data] => Array ( [0] => Array ( [name] => Real Madrid C.F. [category] => Professional sports team [id] => 19034719952 [created_time] => 2011-05-03T20:53:26+0000 ) ) )
Итак, вот как мы проверяем с помощью PHP-SDK:
<?php require '../src/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( 'appId' => 'APP_ID', 'secret' => 'APP_SECRET', )); $user = $facebook->getUser(); if ($user) { try { $likes = $facebook->api("/me/likes/PAGE_ID"); if( !empty($likes['data']) ) echo "I like!"; else echo "not a fan!"; } catch (FacebookApiException $e) { error_log($e); $user = null; } } if ($user) { $logoutUrl = $facebook->getLogoutUrl(); } else { $loginUrl = $facebook->getLoginUrl(array( 'scope' => 'user_likes' )); } // rest of code here ?>
Аналогичный скрипт usingJS-SDK:
FB.api('/me/likes/PAGE_ID',function(response) { if( response.data ) { if( !isEmpty(response.data) ) alert('You are a fan!'); else alert('Not a fan!'); } else { alert('ERROR!'); } }); // function to check for an empty object function isEmpty(obj) { for(var prop in obj) { if(obj.hasOwnProperty(prop)) return false; } return true; }
Код взят из моегоучебника .
Пока
pages.isFan
все еще работает на меня, вы можете использовать FQLpage_fan
таблица с новым PHP-SDK:$result = $facebook->api(array( "method" => "fql.query", "query" => "SELECT uid FROM page_fan WHERE uid=$user_id AND page_id=$page_id" )); if(!empty($result)) // array is not empty, so the user is a fan! echo "$user_id is a fan!";
Из документации:
Чтобы прочитать таблицу page_fan, вам нужно:
- любой действительный
access_token
, если он является публичным (видимым для всех на Facebook).user_likes
разрешения при запросе текущего пользователя.friends_likes
разрешения при запросе a друг пользователя.
Вот еще один подход , основанный на переменной signed_request POST, которую Facebook отправляет на каждую страницу приложения tab (если у вас включен расширенный параметр "OAuth 2.0 for Canvas").
Самое приятное в этом то, что вам не нужно отправлять еще один fql.запрос.
Или вы можете использовать fbml, если вы хотите, например, показать некоторый контент, если они являются веером или сделали некоторые динамические вещи.
Пример:
<fb:fbml version="1.1"> <fb:visible-to-connection>This part is visible for fans only! <fb:else>This part is visible for non-fans</fb:else> </fb:visible-to-connection> </fb:fbml>