Есть ли кто-нибудь, кто знает, как получить список друзей по адресу электронной почты с помощью Facebook PHP SDK?
Как я могу получить адреса электронной почты списка друзей facebook?
Ответы (6)
Тебе этого не сделать
http://developers.facebook.com/docs/reference/api/permissions/ а>
Поле email
доступно только для пользователей, которые подключились к вашему приложению и предоставили email
расширенное разрешение
email
, тогда вы можете получить свойство email
их объекта user
. Расширенное имя разрешения — (та-да) email
, и вы можете получить подробную информацию по ссылке, которую я дал выше.
- person zerkms; 10.01.2012
extended
, а общее разрешение user
. Первая таблица
- person zerkms; 10.01.2012
Нет, приложения не могут получать электронные письма друзей, как указано в документе Разрешения электронной почты. . Цитата из документа:
Примечание. Приложения не могут получить адреса электронной почты друзей пользователя.
Электронная почта пользователя является защищенной собственностью, и доступ к этой информации должен быть специально запрошен приложением и предоставлен пользователем.
Примечание. Приложения не могут получить адреса электронной почты друзей пользователя.
Получить информацию по этим ссылкам:
Если пользователь/друг не предоставил вашему приложению разрешения на доступ к электронной почте, скорее всего, вы не сможете получить адрес электронной почты. В таких случаях вы можете отфильтровать только тех друзей, которые предоставили разрешения вашему приложению. Это можно сделать с помощью поля 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);
Приложения не могут получить адреса электронной почты друзей пользователя. См. документацию https://developers.facebook.com/docs/reference/login/email-permissions/
у вас есть доступ к списку друзей пользователя. Поскольку эти друзья могут не авторизовать ваше приложение, по умолчанию вы можете получить доступ только к более ограниченному набору данных: только имя, изображение профиля, пол, сети. Большинство других частей профиля Facebook (например, интересы, отметки, группы) доступны через Graph API, если пользователь предоставил вам определенные разрешения. Это относится как к информации о пользователе, так и к информации о его/ее друзьях. информация доступна в соответствии с настройками конфиденциальности пользователя.