2014-12-31 4 views
0

Я использую следующий FQL получить дни рождения из Facebook (я знаю, что Дэ апи изменилось) Однако я хочу продолжать это сейчас:Получить пользователей электронной почты с помощью FQL

String fqlQuery = "{" + 
         "'friends':'SELECT uid2 FROM friend WHERE uid1 = me()'," + 
         "'friendinfo':'SELECT uid, name,pic_square, birthday FROM user WHERE uid IN" + 
         "(SELECT uid2 FROM #friends) AND birthday'"+ 
         "}"; 

Как это изменить запрос, так что я могу принести пользователь электронного идентификатора (не друзья)

ответ

1

https://developers.facebook.com/docs/graph-api/reference/v2.2/user

авторизовать пользователь с «электронным» разрешением и вызовом /me с API Graph, чтобы получить электронную почту пользователя. Это намного проще с графическим API, забыть о FQL. Пример кода для Android можно найти в разделе «Чтение» на странице ссылки, которую я опубликовал.

Btw, если вы хотите получить электронные письма друзей: это невозможно вообще, даже со старым API. Вам не разрешат использовать эти электронные письма каким-либо образом, поэтому было бы бессмысленно получать электронные письма друзей.

+0

Я оттисками на diong это с выше, потому что fql в моем вопросе запускается, как только нажимается кнопка входа в систему, я думал, что добавление к тому же fql решит мою цель самым простым способом. С помощью подхода вы предлагаете мне изменить свою структуру программы. Я уже установил разрешения для самостоятельной электронной почты, и все настроено. – User3

+0

вы не можете сделать это в одном вызове fql. и использование графика api намного проще. – luschn

0

Интересно, сколько тысяч «напоминаний дня рождения друзей» есть там ... @luschn прав. Я не понимаю, что вы хотите запросить. friends_* разрешения были отменены с введением Graph API версии 2.0.

FQL будет доступен до 7 августа 2016 года, но только если у вас есть приложение < = v2.0.

FQL будет

String fqlQuery = "{" + 
    "'email':'SELECT uid, email FROM user WHERE uid = me()'," + 
    "'friendinfo':'SELECT uid, name,pic_square, birthday FROM user WHERE uid IN (SELECT uid2 FROM SELECT uid2 FROM friend WHERE uid1 = me()) AND birthday'"+ 
"}"; 

Это может эффективно работать только с v1.0 приложений, которые перестанут работать на 30 апреля 2015 года

+0

Я знаю об этой проблеме, но я бы эффективно раскрыл обновление где-то в середине марта. Поскольку я создаю сервер приложений на базе, и пользователи могут делать резервную копию данных, прежде чем открытый граф станет закрытым графиком. Для этого мне нужен идентификатор электронной почты для разделения пользователей и их данных на моих серверах. Вот почему идентификатор электронной почты. – User3

+0

Электронная почта возвращает мне null как-то. Когда я пытаюсь восстановить его, например: 'email = jsonObject.getString (« email »)' – User3

+0

Итак, вы собрали * разрешение электронной почты * при входе в систему? В противном случае вы не сможете получить доступ к полю электронной почты. – Tobi

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