尝试授权脚本时出现错误:未授权客户端

Posted

技术标签:

【中文标题】尝试授权脚本时出现错误:未授权客户端【英文标题】:Getting Error: unauthorized_client when trying to authorize script 【发布时间】:2017-01-19 07:58:58 【问题描述】:

我已经创建了具有域范围委派及其范围(在管理控制台和开发者控制台中)的服务帐户,如文档中所述。我已经尝试了一个星期,但我被卡住了。这是我的代码:

const google = require('googleapis');
const gmail = google.gmail('v1');
const directory = google.admin('directory_v1');
const scopes = [
  'https://www.googleapis.com/auth/gmail.readonly',
  'https://www.googleapis.com/auth/admin.directory.user.readonly'
];
const key = require('./service_key.json');

var authClient = new google.auth.JWT(
  key.client_email,
  key,
  key.private_key,
  scopes,
  "kruno@example.com"
);

authClient.authorize(function(err, tokens)
  if (err) 
    console.log(err);
    return;
  

// API call methods here...

);

我得到这个错误:

错误:未授权客户端

我无法理解:

在没有任何用户交互的情况下,从服务器端脚本调用 Google API 方法是否合适? (仅限域下) 服务帐户和实际用户帐户如何以这种方式通信? 我听说了回调 URI,我错过了吗?

【问题讨论】:

【参考方案1】:

我认为您错过了最后一步,即在您的域的控制面板中访问您的应用程序。

您可以按照 doc 正确使用您的应用程序来激活它

https://developers.google.com/+/domains/authentication/delegation

您也可以从这里开始您的第一个调用步骤

https://developers.google.com/adwords/api/docs/guides/first-api-call

【讨论】:

我已经为此服务帐户授予了域范围的权限和范围。我不明白我到底错过了哪一部分? 你是怎么解决这个@Kunok的? @tiagoperes 在我的情况下,范围没有正确匹配。你能描述一下你的问题吗? 我遇到的问题是争论不正确。已经修好了,谢谢我现在的问题是 ''WSGIRequest' 对象没有属性 'Reddit' ' 只是让你知道,这个问题也得到了解决。如果您偶然发现并且不知道自己做错了什么,请查看我的个人资料

以上是关于尝试授权脚本时出现错误:未授权客户端的主要内容,如果未能解决你的问题,请参考以下文章

创建 MultiUserChat 房间时出现未授权错误

尝试访问 REST API 时出现 401(未授权)

尝试获取授权令牌时出现python oauth2客户端问题

cron 运行网站备份 google drive api 脚本时出现“无效授权”错误

XMPPFramework - 删除注册用户帐户时出现“未授权”错误

Github 操作,使用 npm 或 yarn 安装 Github 包时出现 401 未授权