【发布时间】:2019-08-07 16:27:46
【问题描述】:
我正在尝试对用户进行身份验证并获取用户数据,例如姓名和电子邮件。 我正在关注此处google 的文档。 这是我的身份验证代码:
function handleClientLoad() {
gapi.load('client:auth2', initClient);
}
function initClient() {
// Array of API discovery doc URLs for APIs used by the quickstart
var DISCOVERY_DOCS =
["https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest"];
// Authorization scopes required by the API; multiple scopes can be
// included, separated by spaces.
var SCOPES = 'https://www.googleapis.com/auth/gmail.readonly';
gapi.client.init({
apiKey: API_KEY,
clientId: CLIENT_ID,
discoveryDocs: DISCOVERY_DOCS,
scope: SCOPES
}).then(function (data) {
}, function(error) {
});
}
当用户点击按钮时:
if(!gapi.auth2.getAuthInstance().isSignedIn.get()){
gapi.auth2.getAuthInstance().signIn();
}
// user IS authenticated here
var profile = gapi.auth2.getAuthInstance().currentUser.get();
console.log('Email: ' + profile.getEmail());
当我console.log(gapi.auth2) 时,我看到我有函数BasicProfile(),但如果我使用gapi.auth2.BasicProfile().getEmail(),我会收到此错误:
cb=gapi.loaded_0:219 Uncaught TypeError: Cannot read property 'sub' of null 在 Object.PG [as BasicProfile] (cb=gapi.loaded_0:219)
【问题讨论】:
标签: javascript google-app-engine gmail-api