Javascript 请求的身份验证作用域不足
我已经有一个项目来查询谷歌日历API。 我想通过查询GoogleMail API更进一步。 在我的项目中,我激活了邮件API 我在javascript应用程序中添加了discoveryDocs,如下所示Javascript 请求的身份验证作用域不足,javascript,gmail-api,google-api-js-client,Javascript,Gmail Api,Google Api Js Client,我已经有一个项目来查询谷歌日历API。 我想通过查询GoogleMail API更进一步。 在我的项目中,我激活了邮件API 我在javascript应用程序中添加了discoveryDocs,如下所示 [ "https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest", "https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest"
[
"https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest",
"https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest"
]
"https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.events https://mail.google.com/"
还有像这样的望远镜
[
"https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest",
"https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest"
]
"https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.events https://mail.google.com/"
我的客户端的初始化如下所示:
initClient(): void {
gapi.client.init({
apiKey: 'ma_api_key',
clientId: 'my_client_id.apps.googleusercontent.com',
discoveryDocs: [
"https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest",
"https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest"
],
scope: 'https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.events https://mail.google.com/',
}).then(() => {
console.log('ok')
});
}
我仍然可以获取日历和事件,但无法获取带有以下代码的标签:
getMails(): void {
console.log(gapi);
gapi.client.gmail.users.labels.list({
'userId': 'me'
}).then(function(response) {
var labels = response.result.labels;
console.log(labels);
});
}
请问我错过了什么
谢谢
请求的身份验证作用域不足
表示与您进行身份验证的用户已授权您的应用程序使用某些作用域,但这些作用域不是作用域,但您尝试使用的方法需要附加作用域,然后用户已授权您的应用程序
当您对应用程序进行一次授权,然后更改作用域并再次运行时,通常会发生此错误。如果您的应用程序仍然具有来自上一次授权请求的会话变量或cookies,则您的应用程序将在不请求用户访问和添加其他作用域的情况下运行
您需要撤销或强制应用程序再次显示同意屏幕太好了,谢谢您的解释