2015-06-16 3 views
0

В настоящее время я использую hello.js, чтобы пользователи создали учетные записи и вошли в систему с помощью facebook. Тем не менее, мне нужно использовать адрес электронной почты пользователя facebook, поскольку он используется для отправки пользователю подтверждения покупки.Получить адрес электронной почты facebook от имени пользователя

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

Я пробовал использовать идентификатор пользователя facebook, но формат электронной почты [email protected]. Я могу получить идентификатор пользователя и адрес электронной почты (если разрешено), но не имя пользователя.

Можем ли мы получить это, и если да, то как?

+0

поля 'username' не существует больше в API v2. И не каждый пользователь делает даже _have_ адрес электронной почты в файле с Facebook (например, если они подписались на своем мобильном телефоне), и есть другие причины, по которым вы не можете получить обратно API, даже если пользователь дает разрешение. Если вам нужен адрес электронной почты, затем выполните дополнительный шаг, чтобы пользователь мог предоставить его напрямую. – CBroe

+0

@CBroe Итак, из того, что я собираю, нет способа сбора этой информации, не говоря уже о гарантии, что есть какие-либо данные для извлечения ...? – davewoodhall

+1

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

ответ

0

Я поцарапал голову также о том, как получить электронные письма из FB, вызвать объект ответа в документации [https://developers.facebook.com/docs/facebook-login/web] пункт Сделать вызовы API выглядит иначе, чем то, что оно возвращается.

Вы можете посмотреть: [https://developers.facebook.com/docs/javascript/reference/FB.api] и добавить параметры.

Здесь с помощью версии 2.5:

window.fbAsyncInit = function() { 
FB.init({ 
    appId  : {your-app-id}, 
    status : true, 
    cookie : true, 
    xfbml  : true, 
    oauth : true, 
    version : 'v2.5' 
}); 

После документации, как только вошли:

FB.api('/me', function(response) {console.log(response) })

реакция имеет только _ID и name несмотря на разрешения предоставляются.

Вы можете получить электронную почту, если существующие, по также указанию fields параметров против FB.api:

FB.api('/me?fields=id,name,email', function(response) { console.log(response); });

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