如何使用angularfire2 FirebaseAuth Google登录名认证到Youtube?

时间:2018-09-05 21:44:13

标签: youtube-api ionic3 angularfire2 google-oauth2

在我的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));

0 个答案:

没有答案