在我的Angular 5 / Ionic 3项目中,我通过firebaseauth进行了Google身份验证设置,并且运行良好。 我是否可以通过一种简单的方法来使用该身份验证来访问我的Youtube帐户中的订阅视频?我正在尝试避免使用gapi youtube api,而仅将auth数据与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']);
}
我从YouTube网站api上获得了 401个“无效凭据” 。我还需要发送其他哪些数据,标头或参数以授权给youtube api端点?
来自我的package.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 doc说,当您传递OAuth2令牌时,它不是必需的。但是我得到了相同的结果。
我正在使用我的Google OAuth2网络客户端ID。我将http://localhost:8100
添加到了“授权Java脚本起源”。
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));