Я пытаюсь интегрировать функции входа в LinkedIn на свой веб-сайт с помощью LinkedIn JavaScript SDK, но он не всегда возвращает адрес электронной почты пользователя.Иногда это происходит, а иногда нет.
Вот мой код.
Загрузка API:
<script type="text/javascript" src="//platform.linkedin.com/in.js">
api_key: MY_API_KEY
authorize: true
onLoad: onLinkedInLoad
</script>
Эта функция получаетвызывается при загрузке API:
function onLinkedInLoad() {
/*
* Defining the scope
*/
var scope = {scope: 'r_emailaddres'};
/*
* If the user is not authorized, attach a click event hander with .li-login button
*/
if( !IN.User.isAuthorized() ) {
$('.li-login').on('click', function( event ){
event.preventDefault();
IN.User.authorize(function(){
getProfileData( false );
}, scope);
});
}
else{
IN.Event.on(IN, "auth", function(data){
console.log(data)
getProfileData( true );
});
}
}
Определение функции getProfileData (readyLoggedin):
function getProfileData( alreadyLoggedin) {
if(alreadyLoggedin){
IN.API.Raw("/people/~:(id,firstName,lastName,emailAddress,picture-url)").result(function(response){
$('.li-modal .user-fullname').html(response.firstName+' '+response.lastName);
$('.li-modal img').attr('src', response.pictureUrl);
$('.li-login').removeClass('li-login-btn');
console.log(response)
}).error(onError);
}
else{
IN.API.Raw("/people/~:(id,firstName,lastName,emailAddress,picture-url)").result(function( response ){
console.log(response);
var data = {
"first_name": response.firstName,
"last_name": response.lastName,
"email": response.emailAddress,
"service": 'linkedin',
"picture": response.pictureUrl,
};
//attemptLogin(data);
}).error(onError);
}
}
Код кнопки входа в систему:
<a href="#" class="li-login"><img src="images/linkedin-icon.png"></a>
По умолчанию выбранные разрешения для приложений: 
Быстрая помощь приветствуется.