В моем проекте Angular 5 / Ionic 3 у меня есть настройка аутентификации Google через firebaseauth, и она отлично работает. Есть ли для меня простой способ использовать эту аутентификацию для доступа к видео подписки в моей учетной записи Youtube? Я стараюсь избегать использования gapi youtube api и просто отправляю данные авторизации с моим запросом на YouTube.
constructor(public http: HttpClient, private afAuth: AngularFireAuth) {
this.afAuth.auth.currentUser.getIdToken().then(token => this.token = token);
}
getSubscribedVideos() {
return this.http.get('https://www.googleapis.com/youtube/v3/subscriptions?key=' + this.apiKey
+ '&mine=true&part=snippet,id&maxResults=20',
{ headers: new HttpHeaders({ 'Authorization': 'Bearer ' + this.token} })})
.map(data => data['items']);
}
Я получаю 401 «Неверные учетные данные» от API Youtube. Какие еще данные, заголовки или параметры мне нужно отправить в конечную точку API YouTube для авторизации запроса?
Из моего пакета. Json:
"@angular/core": "5.2.11",
"ionic-angular": "3.9.2",
"angularfire2": "^5.0.0-rc.11",
"firebase": "^5.4.0",
"rxjs": "5.5.11",
Я также пытался сбросить apiKey, так как в документе на YouTube говорится, что это не требуется, когда вы передаете токен OAuth2. Но я получаю тот же результат.
Я использую мой идентификатор веб-клиента Google OAuth2. Я добавил http://localhost:8100
к авторизованному происхождению Javascript.
const provider = new firebase.auth.GoogleAuthProvider();
provider.addScope('https://www.googleapis.com/auth/youtube.readonly');
await this.afAuth.auth.signInWithPopup(provider)
.then(() => this.nav.setRoot(HomePage));