我想做一个插入授权请求。根据{{3}},我需要以下范围:
在代码中它看起来像这样:
{
...
, scopes": [
"https://www.googleapis.com/auth/admin.directory.group"
, "https://www.googleapis.com/auth/admin.directory.group.member"
]
}
我有一个用于JWT身份验证的pem
文件。我们来看看代码:
// dependencies
var Assert = require('assert')
, GoogleApis = require('googleapis')
, authData = require("./authData")
;
// output
console.log("Auth data is: ", authData);
// set jwt data
var jwt = new GoogleApis.auth.JWT(
authData.email
, authData.keyFile
, authData.key
, authData.scopes // my scopes
, "ionica.bizau@example.com"
);
// authorize
jwt.authorize(function (err, data) {
// output error
if (err) {
console.log("Error: ", err);
return;
}
/* run authorized requests */
});
我收到以下错误:
{
error: 'access_denied',
error_description: 'Requested scopes not allowed: https://www.googleapis.com/auth/admin.directory.group https://www.googleapis.com/auth/admin.directory.group.member'
}
为什么我收到此错误?
答案 0 :(得分:2)
在使用服务帐户模拟Apps用户时,您需要明确向服务帐户授予所需范围的授权。管理员可以限制服务帐户代表实际用户执行的操作。
Google Drive API文档总结了https://developers.google.com/drive/web/delegation#delegate_domain-wide_authority_to_your_service_account
上的步骤