Getting Error: unauthorized_client when trying to authorize script
Getting Error: unauthorized_client when trying to authorize script
我已经按照文档中的描述创建了具有域范围委托及其范围(在管理控制台和开发人员控制台中)的服务帐户。我已经尝试了一个星期了,但我被困住了。这是我的代码:
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...
});
我收到此错误:
Error: unauthorized_client
我无法理解:
- 这种在没有任何用户交互的情况下从服务器端脚本调用 Google API 方法的技术是否正确? (仅在域下)
- 服务帐号和实际用户帐号是如何通信的?
- 我听说过回调 URI,我是否想念它?
我认为您错过了最后一步,即在您域的控制面板中授予对您的应用程序的访问权限。
您可以按照文档正确使用您的应用程序激活它
https://developers.google.com/+/domains/authentication/delegation
您也可以从这里开始您的第一个调用步骤
https://developers.google.com/adwords/api/docs/guides/first-api-call
我已经按照文档中的描述创建了具有域范围委托及其范围(在管理控制台和开发人员控制台中)的服务帐户。我已经尝试了一个星期了,但我被困住了。这是我的代码:
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...
});
我收到此错误:
Error: unauthorized_client
我无法理解:
- 这种在没有任何用户交互的情况下从服务器端脚本调用 Google API 方法的技术是否正确? (仅在域下)
- 服务帐号和实际用户帐号是如何通信的?
- 我听说过回调 URI,我是否想念它?
我认为您错过了最后一步,即在您域的控制面板中授予对您的应用程序的访问权限。
您可以按照文档正确使用您的应用程序激活它
https://developers.google.com/+/domains/authentication/delegation
您也可以从这里开始您的第一个调用步骤
https://developers.google.com/adwords/api/docs/guides/first-api-call