Войдите с помощью linkedin и получите информацию о пользователе в Angular2

Я новичок в Angular2, я хочу интегрировать связанные функции входа в систему и получить текущую информацию о пользователе для моего проекта Angular2.

Я создал приложение с использованием связанной учетной записи разработчика и имею ID клиента и Client Secret и попробовал приведенный ниже код, но это дает мне ошибку

ZoneAwareError {__zone_symbol__error: Ошибка: необходимо указать действительный домен JavaScript API как часть конфигурации этого ключа. в хт……}

Я пробовал оба способа объявления ключа API с использованием двойных кавычек (api_key: "81zbsc62i53h5x" и без него (api_key: 81zbsc62i53h5x), но возникает та же ошибка.

Включенный ниже скрипт в index.html

     <script type="text/javascript" src="http://platform.linkedin.com/in.js">
    api_key: 81zbsc62i53h5x
    authorize: true
    onLoad: onLinkedInLoad
    scope: r_fullprofile
  </script>

код в app.component.ts

declare var IN: any;
export class AppComponent {
  onLinkedInLoad() {
    IN.Event.on(IN, "auth", this.onLinkedInAuth);
  }
  public onLinkedInAuth() {
    IN.API.Profile("me")
      .fields("firstName", "lastName")
      .result(this.displayProfiles)
      .error(this.displayProfilesErrors);
  }
  public displayProfiles(profiles) {
    var linkedinmember = profiles.values[0];
    console.log(JSON.stringify(linkedinmember));
    console.log(linkedinmember.firstName + " " + linkedinmember.lastName);
  }
  public displayProfilesErrors(error) {
    console.log(error.message);
    console.log(error);
  }
}

app.component.html кнопку входа и нажмите

 <button (click)="onLinkedInLoad()" class="linkedin-btn">LinkedIn Login</button> 

Любая помощь высоко ценится.


person Manoj Ahuja    schedule 19.04.2017    source источник
comment
Ознакомьтесь с документацией по LinkedIn API. они перечислили пошаговое руководство по включению кнопки «Войти».   -  person Madhu Ranjan    schedule 19.04.2017
comment
Первый вопрос заключается в том, нужен ли вам доступ к некоторым ресурсам на серверной части. Если да, то вам нужен сервер авторизации, который подключается к Linkedin, то есть Предоставление кода авторизации OAuth2. В противном случае, если вам не нужно подключаться к серверной части, вы можете использовать неявное предоставление OAuth2. Следующий вопрос: какие типы грантов поддерживает Linkedin? Неявный грант может быть недоступен. Поэтому вам может понадобиться сервер авторизации. Вы можете внедрить одну или использовать некоторые из уже существующих коммерческих служб, таких как Auth0 ССЫЛКА.   -  person andreim    schedule 19.04.2017
comment
@MadhuRanjan Я выполнил шаги по предоставленной вами ссылке. Я также обновил свой вопрос, чтобы уточнить полученную ошибку. Пожалуйста, посмотрите.   -  person Manoj Ahuja    schedule 21.04.2017
comment
@omacarena Я обновил свой вопрос Пожалуйста, посмотрите и дайте мне знать, если у вас есть решения для этой проблемы.   -  person Manoj Ahuja    schedule 21.04.2017
comment
@ManojAhuja проверили ли вы, если эти шаги решают вашу проблему? - регистрация API, домена и, возможно, ожидание 30 минут   -  person andreim    schedule 21.04.2017
comment
@omacarena Да, я выполнил шаги и зарегистрировал свой домен для настроек JavaScript в Linked In.   -  person Manoj Ahuja    schedule 21.04.2017
comment
@ManojAhuja попробуйте удалить scope: r_fullprofile, потому что он, похоже, не определен в их документы. Следующая onLoad: onLinkedInLoad недопустимая функция. onLinkedInLoad — это функция, определенная внутри класса AppComponent, экземпляр которой недоступен в вашей глобальной области видимости.   -  person andreim    schedule 21.04.2017
comment
@ManojAhuja Теперь я кое-что понял, прочитав этот пост. Используете ли вы angular-cli для своего проекта? Если да, то ваш index.html может испортиться. Пожалуйста, взгляните в своем браузере на отображаемый контент и убедитесь, что содержимое вашего <script> выглядит хорошо, и каждая пара ключ-значение находится в отдельной строке.   -  person andreim    schedule 21.04.2017
comment
@omacarena Да, вы правы, я использую angular-cli. Я проверил свой index.html, но, похоже, здесь нет ничего перепутанного с исходным кодом index.html. dropbox.com/s/99if7ha9ojjy2zz/Index.png?dl=0< /а>   -  person Manoj Ahuja    schedule 21.04.2017
comment
@ManojAhuja удалите кавычки из api_key и onLoad. Вам нужно выставить функцию, переданную onLoad глобально.   -  person andreim    schedule 21.04.2017
comment
@omacarena я удалил кавычки. Можете ли вы уточнить, как глобально раскрыть функцию, переданную в onLoad. Если можно, дайте мне код для этого ..   -  person Manoj Ahuja    schedule 23.04.2017
comment
@ManojAhuja сначала вы можете добавить простую фиктивную функцию внутри тегов <script>, чтобы убедиться, что вы не получаете никаких ошибок. Затем вы можете, например, создать класс, предоставляющий этот метод как статический, чтобы его можно было вызывать глобально. Вы также можете предоставить статическое поле, которое является наблюдаемым, и средства для подписки на это наблюдаемое. Затем, когда вы вызываете этот статический метод, вы можете использовать наблюдаемое для уведомления подписчиков.   -  person andreim    schedule 23.04.2017


Ответы (1)


Эта ошибка появляется, когда вы пытаетесь интегрировать linkedin sdk с незарегистрированным доменом. Вам нужно сделать 2 вещи: 1.Добавить свой домен на панель приложения linkedin: панель Linkedin.

2.Установите файл хоста для тестирования вашего приложения при тестировании домена.

person Freesist    schedule 05.05.2017