Facebook API для Android: как получить расширенную информацию о друзьях пользователя? - PullRequest
1 голос
/ 07 января 2011

Я работаю над небольшим приложением для Android, пытаюсь добавить поддержку Facebook.

Основная проблема: я могу получить только основную информацию о друзьях пользователя (идентификатор, имя). Список разрешений приложения (offline_access здесь только для тестирования, будет удален в ближайшее время):

 String[] sPermissions = { "friends_about_me"
                         , "friends_birthday"
                         , "friends_location"
                         , "friends_website"
                         , "offline_access" };
 mLoginButton.init(this, mFacebook,  sPermissions);

Следующий запрос работает нормально - возвращает список пар id: имя,

 mAsyncRunner.request("me/friends", new SampleRequestListener());

но если я изменю его, чтобы получить больше информации

 mAsyncRunner.request("me/friends?fields=id,name,birthday,hometown", new SampleRequestListener());

сервер возвращает ошибку «Активный токен доступа должен использоваться для запроса информации о текущем пользователе». Я проверил эти запросы API Graph с помощью браузера - оба они работают как положено.

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

Зарегистрируйте хеш ключа Android вашего приложения. Это используется Facebook, чтобы гарантировать, что другое приложение не может олицетворять ваше приложение при общении с приложением Facebook Android.

Сгенерируйте хеш ключа:

keytool -exportcert -alias [псевдоним] -keystore [хранилище ключей] | openssl sha1 -binary | openssl base64 В настройках разработчика Facebook перейдите на Вкладка «Мобильные устройства и устройства».

В разделе Android введите ключ хеш в поле Key Hash.

Может быть, есть другой способ получения информации о пользователях (день рождения, местоположение, пол и т. Д.)?

Ответы [ 3 ]

7 голосов
/ 07 января 2011

Использование

mFacebook.request(graphpath, bundle);

Метод, Bundle будет иметь параметры, которые будут такими:

graphpath = "me/friends"
bundle.putString("fields","birthday");

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

0 голосов
/ 04 марта 2013

Проверьте этот ответ, чтобы узнать, как получить список друзей на Facebook и кто из этих друзей установил ваше приложение.

0 голосов
/ 08 января 2011

когда вы вызываете /me/friends в Graph API, все, что он возвращает, это идентификаторы и имена друзей.Если вы хотите получить больше информации о друзьях, вы можете позвонить /Friend_ID впоследствии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...