Я пытаюсь создать функцию входа в систему, в которой пользователь регистрируется через LinkedIn, предоставляет разрешение на некоторые данные профиля и возвращает объект, содержащий эту информацию.Угловой 2 - Не показывать экран авторизации
Теперь я создал свое приложение после Javascript SDK - Getting Started. И Sign In with LinkedIn (Javascript SDK), который рассказывает мне 2 разных варианта.
Первый - IN.User.authorize(callbackFunction, callbackScope)
, который обсуждается в начале работы.
Во-вторых, в вашем HTML есть <script type="in/Login"></script>
, что создаст кнопку входа.
Я пробовал оба Первый (Приступая к работе) показывает экран авторизации, но проблема заключается в том, что он просто установит cookie в браузере, показывая, что произошла успешная проверка. (по телефону IN.User.isAuthorized()
возвращается true
).
Проблема со вторым (вход с LinkedIn) заключается в том, что в моем браузере (Chrome) кнопки не отображается, поэтому мне нечего нажимать. Вот мой код: (удален ключ API)
home.html
<ion-header>
<ion-navbar>
<ion-title>
LinkedIN
</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<h2> LinkedIn login test </h2>
<!-- option 2 -- Sign in with LinkedIn docs -->
<script type="in/Login"></script>
<!-- option 1 -- check typescript -->
<button (click)="authorize()">Linkedin</button>
</ion-content>
home.ts
import { Component, OnInit } from '@angular/core';
import { NavController } from 'ionic-angular';
declare var IN;
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage implements OnInit {
constructor(public navCtrl: NavController) {}
ngOnInit() {
IN.Event.on('auth',() => {
console.log("authing"); // never printed
IN.API.Raw("/people/~").result((data) => {
console.log(data);
}).error((error) => {
console.log(error);
})
});
}
authorize() {
// note: I figured data is an empty object ({}). Nothing returned
IN.User.authorize((data) => {
console.log("data is "+ JSON.stringify(data)); //[object, Object]
console.log("DATA: "+ data.firstName); //undefined
console.log("hl: "+ data.headLine); //undefined
});
console.log("AUTH: "+IN.User.isAuthorized()); //true if succesfull
}
}
index.html (только голова - ничего изменилось по умолчанию)
<head>
....
<script src="//platform.linkedin.com/in.js" type="text/javascript">
api_key: 1234apikey5678
</script>
....
</head>
Действия по воспроизведению
- Если вы еще не установить ионные и Cordova
npm install -g ionic cordova
- создать пустой проект
ionic start myApp blank --v2 --ts
- зарегистрировать приложение LinkedIn (набор обратного вызова) - скопировать клиентский идентификатор
- настроить 3 файлы, так что они выглядят, как показано выше