更新2:
要检查当前用户是否在Facebook页面的粉丝登陆您的标签,请检查此 answer.
要检查当前用户是否在Facebook页面的粉丝登陆您的标签,请检查此 answer.
- 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
- ?>
使用JS-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仍然适用于我,您可以使用新的PHP-SDK的FQL page_fan
表:
- $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!";
从文档:
To read the page_fan table you need:
- any valid
access_token
if it is public (visible to anyone on Facebook).user_likes
permissions if querying the current user.friends_likes
permissions if querying a user’s friend.