Facebook ‘Friends.getAppUsers’ с использованием Graph API

У меня есть приложение, которое использует старый REST API для вызова Friends.getAppUsers чтобы получить список друзей для текущего пользователя, который разрешил мое приложение.

Я прочитал документацию, как мне это сделать с помощью Graph API? Каков был бы пример этого?

Некоторое время я искал, и я тоже думал, что это невозможно с помощью Graph API.

Тем не менее, я опубликовал аналогичный вопрос. Замена для старых GetAppUsers вызывает, чтобы видеть друзей пользователя, которые используют мое приложение? , для конкретного API, который я использовал, и получил большой общий ответ.

 https://graph.facebook.com/me/friends?fields=installed 

или в целом

 https://graph.facebook.com/{user id}/friends?fields=installed 

Это возвращает всех друзей, с дополнительным полем «installed = true» для тех друзей, которые используют приложение.

Вот он работает в Graph API Explorer :

Это можно сделать с помощью FQL.

 SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = ?) AND is_app_user = 1 

QED!

Да, API-интерфейс API ужасно документирован. Я не вижу никакой документации для типа «приложения», но они ссылаются на информацию приложения в документах:

https://graph.facebook.com/2439131959

Итак, возможно, вы можете получить участников приложения, используя синтаксис группы?

https://graph.facebook.com/2439131959/members

Для его проверки вам понадобится аутентифицированный сеанс. В противном случае, похоже, что Facebook подталкивает нас к использованию FQL для прямой отправки запросов:

http://developers.facebook.com/docs/reference/fql/application

Вы можете выполнять запросы FQL, выбирая https://api.facebook.com/method/fql.query?query=QUERY . Вы можете указать формат ответа как XML или JSON с параметром запроса формата.

Поэтому вы можете передать запрос FQL, чтобы получить информацию о вашем приложении.

Старый API REST:

 $facebook->api_client->friends_getAppUsers(); 

Новый графический API:

 $facebook->api(array('method' => 'friends.getAppUsers')); 

Я провел много исследований по этому вопросу. Из того, что я могу сказать, невозможно использовать Friends.getAppUsers используя Graph API. Последние SDK, предоставленные Facebook, используют старый REST API для привлечения друзей с помощью приложения.

Используя restFB , я сделал следующее (спасибо Igy / Alex за руководство). Обратите внимание, что Facebook возвращает массив идентификаторов друзей с «установленным» = истинным, если пользователь установлен (как можно видеть здесь ).

Сначала расширьте class User, добавив installed поле:

 import com.restfb.Facebook; import com.restfb.types.User; public class InstalledUser extends User { @Facebook private boolean installed; public InstalledUser() { } public boolean getInsatlled() { return installed; } } 

Затем, используя DefaultFacebookClient:

 FacebookClient facebook = new DefaultFacebookClient(pFacebookAccessToken); Connection installedFacebookUsers = facebook.fetchConnection("/" + pFacebookId + "/friends", InstalledUser.class, Parameter.with("fields", "installed")); for (List friends : installedFacebookUsers) { for (InstalledUser friend : friends) { if (friend.getInsatlled()) { // Add friend.getId() to a list of ID, or whatever } } } 

Обходной путь – сделать фильтрацию самостоятельно. Предположительно, у вас есть все uid пользователей, которые зарегистрировались для вашего приложения, сидящего в вашей собственной базе данных. Поэтому сначала запустите все друзья друзей друзей и выберите пользователей из вашей базы данных, у которых есть соответствующие uids.

Новая программа Facebook Graph API кажется очень плохо выполненной и не продумана. Кажется, они бросились публиковать его для Facebook f8 до того, как он был зрелым, и много функциональности отсутствует, что было раньше.

Вы все равно можете вызвать старые API REST в новом графическом API. Это допустимо.

Альтернативный способ – использовать FQL для получения друзей пользователя приложения.

Я не уверен, есть ли способ сделать это, используя только Graph API.

  • Facebook OAuth «Домен этого URL-адреса не входит в домен приложения»
  • Как работает подкачка в API-интерфейсе facebook javascript?
  • как получить идентификатор электронной почты из facebook sdk в приложениях для Android?
  • Какова минимальная ширина и высота изображений Facebook Open Graph?
  • Как проверить, зарегистрирован ли пользователь в FB SDK 4.0 для Android?
  • Сообщение для входа в Facebook: «URL Blocked: эта переадресация не удалась, потому что URI перенаправления не включен в настройки клиента OAuth».
  • Страницы в Facebook - авторитетный список категорий
  • Каковы шаги для получения долгого токена для отправки на страницу фан-сайта Facebook с сервера
  • Долгосрочный токен доступа FB для сервера, чтобы вывести информацию о странице FB
  • Android-приложение для Android-чата
  • Получить список друзей друга на Facebook
  • Interesting Posts

    Снимок экрана Android с экрана Surface View показывает черный экран

    Самостоятельное удаление приложения на C # в одном исполняемом файле

    Как вызвать функцию VBA из ячеек Excel (2010)?

    Можно ли установить vmware на систему не внутри ОС?

    x86 Сборка на Mac

    Набор телефонного звонка при щелчке по тексту в андроиде

    Почему Windows только показывает около 3,5 ГБ моего 4 ГБ ОЗУ?

    Загрузочный текст 3 Выровняйте текст до нижней части Div

    Условное форматирование на основе учетной записи

    Требуется ли Mac OS X антивирус

    Java Hashmap: как получить ключ от стоимости?

    Окна 7 случайным образом закрываются. Где найти соответствующий журнал? Так что я могу определить ошибку

    Как установить размер приложения

    Как изменить оболочку по умолчанию на удаленном сервере?

    Самый быстрый способ определить, существует ли целое число между двумя целыми числами (включительно) с известными наборами значений

    Давайте будем гением компьютера.