0
我在我的網站中使用Google登錄按鈕。我可以授權用戶並獲取用戶的個人資料信息。使用Google登錄按鈕時的額外權限
我跟了這Integrating Google Sign-In into your web app
<div id="my-signin2" ></div>
gapi.signin2.render('my-signin2', {
'scope': 'profile email',
'width': 240,
'height': 50,
'longtitle': true,
'theme': 'light',
'onsuccess': this.onSuccess,
'onfailure': this.onFailure
});
onSuccess(googleUser) {
var id_token = googleUser.getAuthResponse().id_token;
var name = googleUser.getBasicProfile().getName());
var email = googleUser.getBasicProfile().getEmail());
var imageUrl = googleUser.getBasicProfile().getImageUrl());
}
onFailure(error) {
}
現在我需要,而他授權使用谷歌閱讀用戶的聯繫人。
所以對於獲得接觸我添加了一個範圍
https://www.googleapis.com/auth/contacts.readonly
gapi.signin2.render('my-signin2', {
'scope': 'profile email https://www.googleapis.com/auth/contacts.readonly',
'width': 240,
'height': 50,
'longtitle': true,
'theme': 'light',
'onsuccess': this.onSuccess,
'onfailure': this.onFailure
});
每一件事情是工作的罰款。在用戶授權使用gmail後,它向用戶顯示權限屏幕並請求權限。
但是,當用戶拒絕權限,它甚至不記錄用戶。即使他拒絕,我也希望用戶能夠登錄,如果我沒有得到他們的聯繫人,我的用戶也可以登錄。
我看了一下requesting additional scopes.
var options = new gapi.auth2.SigninOptionsBuilder(
{'scope': 'https://www.googleapis.com/auth/contacts.readonly'});
googleUser = auth2.currentUser.get();
googleUser.grant(options).then(
function(success){
console.log(JSON.stringify({message: "success", value: success}));
},
function(fail){
alert(JSON.stringify({message: "fail", value: fail}));
});
當我在這的onSuccess後使用(用戶授權電子郵件後),它總是進入失敗的方法。給錯誤 「popup_closed_by_user」