2015-09-01 2 views
-1

Я хочу, чтобы проверить, если пользователь является фанатом определенной страницы facebook, я много раз пытался с FQL, но ответ всегда нуль:Как проверить, является ли пользователь фанатом страницы facebook с помощью FQL?

FB.api({ 
     method:  'fql.query', 
     query: 'SELECT uid FROM page_fan WHERE uid=user_id AND page_id=page_id' 
    }, function(resp) { 
     if (resp.length) { 
      alert('A fan!') 
     } else { 
      alert('Not a fan!'); 
     } 
    } 
); 

Я попытался с пользовательской таблицей работает хорошо:

FB.api(
      { 
      method: 'fql.query', 
      query: 'SELECT name FROM user WHERE uid=me()' 
      }, 
      function(response) { 
      alert('Your name is ' + response[0].name); 
      } 
     ); 

Я только что зарегистрировал номер https://developers.facebook.com/docs/reference/fql/page_fan/. Кажется, что facebook не поддерживает FQL, так что я могу сделать?

Я очень ценю вашу помощь.

UPDATE Я просто попытался решение API Graph, но результат массив нулевой:

FB.api('/100005548217775/likes/329849167104448',function(response) { 
        if(response.data) { 
         if(!isEmpty(response.data)) 
          alert('You are a fan!'); 
         else 
          alert('Not a fan!'); 
        } else { 
         alert('ERROR!'); 
        } 
       }); 
+0

Facebo ok не позволяет «как gating» больше. И даже если это не то, что вы пытаетесь сделать, вы, скорее всего, не будете использовать разрешение 'user_likes', одобренное. – CBroe

+0

@CBroe Итак, как я могу проверить, нравится ли пользователю страница поклонника или нет? – HungDQ

+0

Вы не обязательны, чтобы проверить это вообще. Вам разрешено использовать только понравившиеся пользователю материалы, которые на самом деле приносят им пользу - например, глядя на все их предпочтения, и на основе этого рекомендуют страницы/контент, которые им также могут понравиться. Но для того, чтобы просто проверить, нравится ли пользователю конкретная страница, вы не получите разрешение, разрешенное FB. – CBroe

ответ

2

Если у вас нет приложения v2.0, вы не можете использовать FQL вообще , потому что он устарел. Кроме того, вы используете неправильный параметр method, который также устарел.

Официальная конечная точка FQL является

/fql?q={url_encoded_query} 

где {url_encoded_query} является URL-адрес закодированных FQL запроса.

Я рекомендую вам пропустить FQL, и идти с стандартным Graph API funcitonality (это на будущее):

/{user-id}/likes/{page-id} 

Обратите внимание, что вам потребуется user_likes разрешение в маркер доступа, чтобы иметь возможность чтобы получить какой-либо результат.

См

+0

Спасибо за помощь, я только что обновил свой вопрос, не могли бы вы взглянуть? Я не уверен, что я использую Graph API правильно или нет. – HungDQ

+0

Что означает «null»? Массив с '[]'? Если да, предоставили ли вы разрешение 'user_likes'? Кроме того, вы можете использовать '/ me/likes/{page_id}', когда вы передаете токен доступа – Tobi

+0

Да, это массив с []. Как я могу получить разрешение 'user_likes'? – HungDQ

0

Я нашел мой ответ:

FB.login(function(response){ 
      if(response.status=='connected'){ 
       FB.api('/me/likes/' + 216524221773305, function(api_response) 
       { 
        if(api_response.data.length > 0){ 
         setLocation('<?php echo $this->getConnectUrl() ?>'); 
        }else{ 
         jQuery('#facebook-like-popup').show(); 
        } 
       }); 
      } 
     }, {scope: 'user_likes'}); 

Там есть одна вещь, которая делает меня смущает, что: Когда я только понравился вентилятор страницы, то проверить результат все еще вернуть Array[]. Похоже, что Facebook не обновляет данные немедленно. Не уверен, что я думаю правильно?

0

Это не либо работать, как вам нужно user_likes разрешения от Facebook, вы можете попробовать что-то другое, позволяет сказать, что страница, которую вы хотите узнать, если пользователь понравилось это

https://www.facebook.com/pg/Poulamecom-159391200925483/likes/?ref=page_internal

1) визит страница 2) посмотреть источник 3) найти «likeStatus» внутри источника, если его истинная, а затем понравившаяся пользователю страница, если false, то пользователю не понравилась страница 4) «страница посещения» может быть выполнена автоматически с помощью скрипта и проверить, если likeStatus ": true или likeStatus": false

Смежные вопросы