Facebook Graph — нравится ли пользователю моя страница?

Я пытаюсь обновить свое приложение для iPhone, чтобы использовать новый API-интерфейс facebook. Одна вещь, которую я не могу найти, - это как узнать, является ли текущий пользователь, подключенный из моего приложения к facebook, поклонником моей страницы facebook - (т.е. в новой парадигме - нравится ли пользователю моя страница)

В Rest Api была функция isFan, но не в Graph.

Я могу получить все элементы, которые нравятся пользователю, и найти, является ли один из них моей страницей, но, безусловно, должен быть более простой способ, вместо того, чтобы каждый раз проверять тысячи записей, не так ли?

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


person Marin Todorov    schedule 13.05.2010    source источник


Ответы (5)


Согласно документам разработчиков Facebook, старый метод pages.isFan имеет эквивалент в Графический API сейчас

Обратите внимание: мы находимся в процессе прекращения поддержки REST API и добавили эквивалентную поддержку в Graph API для этого метода. Теперь вы можете отправить HTTP-запрос GET к /USER_ID/likes/PAGE_ID, чтобы проверить, является ли пользователь страницей поклонника.

В соответствии с этим вызов /{USER ID}/likes/{PAGE ID} вернет необходимую информацию, если у вас есть правильный (user_likes) Разрешение или лайки пользователя общедоступны

person The Mad Gamer    schedule 10.01.2011

Самое быстрое и простое решение, если вы анализируете переменную $_POST, когда ваша страница вызывается Facebook. В sign_request также есть информация о том, нравится ли пользователю ваша страница или нет, даже если он/она еще не предоставил доступ к вашему приложению (пока).

person Sándor Tóth    schedule 09.11.2011
comment
Сандор - как вы поняли из вопроса, я говорю о приложении для iPhone, вы уверены, что ваш ответ актуален? - person Marin Todorov; 12.11.2011

То, что вы ищете, это таблица соединений. Попробуй это:

SELECT target_id, target_type
FROM connection
WHERE source_id = '_THE_USERS_FACEBOOK_ID_'
  AND target_id = '_THE_ID_OF_THE_PAGE_OR_OBJECT_TO_LIKE_'

Это оператор FQL, который можно запустить из метода JavaScript FB.api или с помощью любого из внутренних SDK.

person Tyler V.    schedule 09.11.2011
comment
Вам потребуется расширенное разрешение read_stream для доступа к этой таблице, в настоящее время предпочтительным решением является запрос GET к /{user id}/likes/{page id} - person Igy; 10.11.2011

С плагином PhoneGap я могу сделать это:

pageID = '6815841748';
FB.api('/me', function (a) {
   user_id = a.id;
   FB.api('/' + user_id + '/likes/'+pageID, function (a) {
        alert(a.data.length);
    })
});

Он вернет 1, если им нравится данный идентификатор страницы, 0 в противном случае.

Я обнаружил (но не тестировал), возможно, более чистый метод:

window.checkDoesLike = function() {
  FB.api({ method: 'pages.isFan', page_id: '6815841748' }, function(resp) {
    if (resp) {
      alert('You like.');
    } else {
     alert("You don't like.");
    }
  });
};
person Luke Stanley    schedule 04.07.2012

На данный момент доступен только ресурс графика '//likes'. Хотя это не так уж и плохо.

https://graph.facebook.com/ngerakines/likes?access_token=
person Nick Gerakines    schedule 14.05.2010
comment
Привет, Ник, как я уже упоминал в своем вопросе, мне действительно странно, что я должен просматривать сотни или тысячи объектов, чтобы определить, нравится ли пользователю данный идентификатор страницы. Лайки были бы замечательными, если бы можно было сказать, что вы ищете, как я/лайки?access_token=...&id=100000000 и ответить да/нет... - person Marin Todorov; 14.05.2010
comment
Я согласен, самое меньшее, что они могут сделать, это позволить вам фильтровать ответ на стороне сервера. - person Nick Gerakines; 14.05.2010
comment
Это решение иногда не работает. Когда у Facebook проблемы с сервером, он возвращает пустой список. Старый page.isFan отлично работает в этих случаях. - person Tomasz Wysocki; 25.09.2010