У меня есть этот FQL:
$femail = $facebook->api(array( 'method' => 'fql.query', 'locale' => 'en_US', 'query' => 'SELECT email FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1='.$user_id.') AND uid = '.$friend_id.' ORDER BY name ASC', ));
Вот результат print_r
:
Array ( [0] => Array ( [email] => ) )
Я хочу получить адрес электронной почты друга, но этот запрос приводит к пустым значениям электронной почты. Я что-то пропустил в запросе? Возможно ли получить электронную почту друзей? Я проверил с моим партнером, она дала разрешение на приложение, чтобы выдать адрес электронной почты.
В общем, вы НЕ МОЖЕТЕ получить адрес электронной почты своих друзей ( источник ):
User permission Friends permission email not available
НО, но так как ваш друг разрешил ваше приложение, вы можете попробовать следующее в консоли FQL :
SELECT email FROM user WHERE uid=FRIEND_ID
Я подозреваю, что проблема может заключаться в том, что вам нужен « access_token
» друга, чтобы получить электронное письмо, потому что я предполагаю, что вы вошли в систему как пользователь, когда пытаетесь access_token
свой запрос. Поэтому вам необходимо предоставить разрешение offline_access
а затем использовать его с запросом.
Но прежде чем делать это, я попробую его с помощью приложения access_token
.
PS: подзапрос не нужен, если вы знаете идентификатор друга.
Вы не можете получать адреса электронной почты друзей. Каждая учетная запись должна отказаться от совместного использования своего адреса электронной почты с приложением. Друзья не могут выбрать других друзей, что хорошо.
Кроме того, как упоминал @ Barkermn01, отбросьте AND uid = '. $ Friend_id.'