Я работаю над небольшим приложением для 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.
Может быть, есть другой способ получения информации о пользователях (день рождения, местоположение, пол и т. Д.)?