Как я могу получить адреса электронной почты списка друзей facebook?

Есть ли кто-нибудь, кто знает, как получить список друзей по адресу электронной почты с помощью Facebook PHP SDK?


person Mang Jose    schedule 10.01.2012    source источник


Ответы (6)


Тебе этого не сделать

http://developers.facebook.com/docs/reference/api/permissions/

Поле email доступно только для пользователей, которые подключились к вашему приложению и предоставили email расширенное разрешение

person zerkms    schedule 10.01.2012
comment
@Mang Jose: если каждый ваш друг подключен к вашему приложению и каждый из них дал вам разрешение email, тогда вы можете получить свойство email их объекта user. Расширенное имя разрешения — (та-да) email, и вы можете получить подробную информацию по ссылке, которую я дал выше. - person zerkms; 10.01.2012
comment
@Mang Jose: ой, не extended, а общее разрешение user. Первая таблица - person zerkms; 10.01.2012
comment
Я не вижу прямого заявления в разделе разрешений на Facebook. Подскажите, пожалуйста, где упоминается это утверждение? Примечание. Приложения не могут получить адреса электронной почты друзей пользователя. - person msmq; 15.01.2016
comment
@sfarbota спасибо за отрицательный ответ, который был действителен раньше, я очень ценю это. Конечно, я обязан просмотреть каждый из тысячи своих ответов и проверить, действительны они или нет. - person zerkms; 13.06.2016
comment
@sfarbota stackoverflow.com/help/привилегии/голосование-вниз В случае, если ответ устарел (из-за изменения в стороннем API или что-то еще) Я лично думаю, что было бы более подходящим обновить ответ с разъяснением того, почему он больше не точен. - person zerkms; 13.06.2016
comment
@sfarbota PS: вы уверены, что ответ больше не соответствует действительности? Я только что проверил документацию (включая вашу цитату) и проводник API Graph - и он все еще работает, как я объяснил. - person zerkms; 13.06.2016
comment
@sfarbota хе-хе. Что ж, даже если вы не можете сделать эту часть, это все равно правильно, поскольку вы не можете этого сделать. - person zerkms; 13.06.2016

Нет, приложения не могут получать электронные письма друзей, как указано в документе Разрешения электронной почты. . Цитата из документа:

Примечание. Приложения не могут получить адреса электронной почты друзей пользователя.

person Bao Le    schedule 16.10.2013

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

Примечание. Приложения не могут получить адреса электронной почты друзей пользователя.

person Ashisha Nautiyal    schedule 15.01.2014

Получить информацию по этим ссылкам:

Процедура

обсуждение Statckoverflow

Если пользователь/друг не предоставил вашему приложению разрешения на доступ к электронной почте, скорее всего, вы не сможете получить адрес электронной почты. В таких случаях вы можете отфильтровать только тех друзей, которые предоставили разрешения вашему приложению. Это можно сделать с помощью поля is_app_user:

SELECT uid, first_name, last_name FROM user 
  WHERE is_app_user = 1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $userId)

Получить обновленный ответ:

$appId     = 'YOUR_APP_ID';
$appSecret = 'YOUR_APP_SECRET';

$userId          = 'A_FACEBOOK_USER_ID';
$userAccessToken = 'THE_FACEBOOK_USER_ACCESS_TOKEN';

$client = new Facebook(array('appId' => $appId, 'secret' => $appSecret));

// get all friends who has given our app permissions to access their data
$fql = "SELECT uid, first_name, last_name, email FROM user "
     . "WHERE is_app_user = 1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $userId)";
$friends = $client->api(array(
  'method'       => 'fql.query',
  'access_token' => $userAccessToken,
  'query'        => $fql,
));

// make an array of all friend ids
$friendIds = array();
foreach ($friends as $friend) {
  $friendIds[] = $friend['uid'];
}

// get info of all the friends without using any access token
$friendIds = implode(',', $friendIds);
$fql = "SELECT uid, first_name, last_name, email FROM user WHERE uid IN ($friendIds)";
$friends = $client->api(array(
  'method' => 'fql.query',
  'query'  => $fql,
  // don't use an access token
));

// we should now have a list of friend infos with their email addresses
print_r($friends);
person Somnath Muluk    schedule 10.01.2012

Приложения не могут получить адреса электронной почты друзей пользователя. См. документацию https://developers.facebook.com/docs/reference/login/email-permissions/

person Narek Safaryan    schedule 06.12.2013

у вас есть доступ к списку друзей пользователя. Поскольку эти друзья могут не авторизовать ваше приложение, по умолчанию вы можете получить доступ только к более ограниченному набору данных: только имя, изображение профиля, пол, сети. Большинство других частей профиля Facebook (например, интересы, отметки, группы) доступны через Graph API, если пользователь предоставил вам определенные разрешения. Это относится как к информации о пользователе, так и к информации о его/ее друзьях. информация доступна в соответствии с настройками конфиденциальности пользователя.

person VISHNU Radhakrishnan    schedule 08.08.2016