从 Apps 脚本验证服务帐户
Authenticate Service Account from Apps Script
我正在尝试使用 API 将成员添加到群组中。我在 google 脚本工具中编码,但是,我收到错误消息:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
我已经在 G SUITE 域中添加了范围,我已经创建了服务帐户、API 密钥、OAuth 2.0 密钥。
目前我的要求是:
var headers = {
"apiKey" : "****",
"clientId" : "*****.apps.googleusercontent.com"
}
var payload = {
"email": user,
"role": "MEMBER"
}
var options = {
"method" : "post",
"payload" : payload,
"headers" : headers
};
var response = UrlFetchApp.fetch("https://www.googleapis.com/admin/directory/v1/groups/***/members", options);
缺少什么,或者我做错了什么?我已经阅读了所有文档,但仍然无法找出问题所在。
当我通过 Google 脚本编写代码时,我发现了一项具有我需要的功能的服务。它称为目录,位于 Google 的 Admin SDK 部分中。下面是指向文档的 link,其中有示例:
https://developers.google.com/apps-script/advanced/admin-sdk-directory
最后,我的代码是这样的:
function insertMembers(){
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("")
var membersInSheet = sheet.getRange(27, 3, sheet.getLastRow())
var values = membersInSheet.getNumRows()
var groupId = "email group"
//Logger.log(membersInSheet)
for (var i = 0; i < values; i++){
var getMember = sheet.getRange(27+i, 3).getValue();
var member = {
email: getMember,
role: 'MEMBER'
};
if (member != ''){
var memberAdd = AdminDirectory.Members.insert(member, groupId);
Logger.log(memberAdd);
}
}
}
不认证,不休息!
此 AdminDirectory 的问题是,只有管理员可以使用在后端使用 AdminDierctory 的应用程序。当普通用户使用该应用程序时,没有访问 AdminDirectory 的选项。因为应用程序是由不同的用户授权的。唯一可能的方法是使用 OAuth2 API
我正在尝试使用 API 将成员添加到群组中。我在 google 脚本工具中编码,但是,我收到错误消息:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
我已经在 G SUITE 域中添加了范围,我已经创建了服务帐户、API 密钥、OAuth 2.0 密钥。 目前我的要求是:
var headers = {
"apiKey" : "****",
"clientId" : "*****.apps.googleusercontent.com"
}
var payload = {
"email": user,
"role": "MEMBER"
}
var options = {
"method" : "post",
"payload" : payload,
"headers" : headers
};
var response = UrlFetchApp.fetch("https://www.googleapis.com/admin/directory/v1/groups/***/members", options);
缺少什么,或者我做错了什么?我已经阅读了所有文档,但仍然无法找出问题所在。
当我通过 Google 脚本编写代码时,我发现了一项具有我需要的功能的服务。它称为目录,位于 Google 的 Admin SDK 部分中。下面是指向文档的 link,其中有示例:
https://developers.google.com/apps-script/advanced/admin-sdk-directory
最后,我的代码是这样的:
function insertMembers(){
var ss = SpreadsheetApp.getActive()
var sheet = ss.getSheetByName("")
var membersInSheet = sheet.getRange(27, 3, sheet.getLastRow())
var values = membersInSheet.getNumRows()
var groupId = "email group"
//Logger.log(membersInSheet)
for (var i = 0; i < values; i++){
var getMember = sheet.getRange(27+i, 3).getValue();
var member = {
email: getMember,
role: 'MEMBER'
};
if (member != ''){
var memberAdd = AdminDirectory.Members.insert(member, groupId);
Logger.log(memberAdd);
}
}
}
不认证,不休息!
此 AdminDirectory 的问题是,只有管理员可以使用在后端使用 AdminDierctory 的应用程序。当普通用户使用该应用程序时,没有访问 AdminDirectory 的选项。因为应用程序是由不同的用户授权的。唯一可能的方法是使用 OAuth2 API