Как авторизоваться на Youtube с помощью angularfire2 FirebaseAuth для входа в Google? - PullRequest
0 голосов
/ 06 сентября 2018

В моем проекте 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));
...