【发布时间】:2019-09-30 04:35:26
【问题描述】:
我创建了一个 gmail 插件。我正在尝试调用 api
curl \
'https://www.googleapis.com/admin/directory/v1/users?key=[YOUR_API_KEY]' \
--header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
--header 'Accept: application/json' \
--compressed
var loggedUser = Session.getActiveUser().getEmail();
var domain = loggedUser.split('@')[1];
do {
page = AdminDirectory.Users.list({
domain: domain,
maxResults: 100,
pageToken: pageToken,
});
var users = page.users;
if (users) {
for (var i = 0; i < users.length; i++) {
var user = users[i];
emails.push(user.primaryEmail);
}
} else {
Logger.log('No users found.');
}
pageToken = page.nextPageToken;
} while (pageToken);
我已添加所有必需的范围
https://www.googleapis.com/auth/admin.directory.user.readonly
https://www.googleapis.com/auth/admin.directory.user
在我的应用程序清单中。如果我尝试直接点击 api,我会得到 401。在给出范围后,如果我必须手动调用这个 api,有人可以帮我如何获取 access_token 和 api_key 来调用 api 吗?
【问题讨论】:
-
Resources>使用高级服务
-
是的,我实际上是在使用高级服务。然后我就能得到这些细节。但是当我将应用程序部署到我的域市场时,相同的 api 不起作用。我从谷歌云控制台将 ADMIN SDK 添加到我的应用程序中。但我无法调用这个 api。你能帮我看看如何让它工作吗?我需要获取我域的所有用户
-
@TheMaster 我正在尝试获得像this 这样的域用户。部署到市场后它会工作还是我需要改变任何东西
-
same api 不工作。你能edit你的问题添加更具体的细节吗?有什么错误?代码是什么?错误在哪一行?用户是谁?这可能会帮助其他人找到解决方案。
-
如果您必须使用
UrlFetchApp,那么您必须像在 curl 中一样发送标头。显示您的 fetchapp 代码和/或高级服务代码。
标签: google-apps-script google-workspace