请求的身份验证范围不足 javascript

Posted

技术标签:

【中文标题】请求的身份验证范围不足 javascript【英文标题】:Request had insufficient authentication scopes javascript 【发布时间】:2021-08-07 18:35:46 【问题描述】:

我已经有一个查询谷歌日历 api 的项目。 我想通过查询 google mail 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/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);
);

请问我错过了什么?

谢谢

【问题讨论】:

【参考方案1】:

请求没有足够的身份验证范围 javascript

表示与您进行身份验证的用户已授权您的应用程序使用某些范围,但它们不是范围,但您尝试使用需要附加范围的方法,然后用户已授权您的应用程序。

当您授权您的应用程序一次然后更改范围并再次运行它时,通常会发生此错误,如果您的应用程序仍然具有来自先前授权请求的会话 var 或 cookie,那么您的应用程序将运行而不请求用户访问并添加附加范围。

您需要撤销access token或强制应用再次显示同意屏幕

【讨论】:

以上是关于请求的身份验证范围不足 javascript的主要内容,如果未能解决你的问题,请参考以下文章

Gmail Api 请求的身份验证范围不足

Youtube 评论 API 抛出“权限不足:请求的身份验证范围不足”错误

错误 403:“请求的身份验证范围不足”,即使相关范围已激活

请求的身份验证范围不足 youtube api

Google Calendar API 错误请求的身份验证范围不足

如何使用 C# 向谷歌聊天室发布消息? (**错误**:请求的身份验证范围不足)