如何通过脚本为域内用户批量启用Apps Script API?
程序化启用域内用户的Google Apps Script API方法
可以通过Google Workspace Admin SDK的Settings API结合服务账号的全域委派,批量为域内用户启用Apps Script API,无需用户手动访问设置页面操作。
前提条件
- 服务账号已配置全域委派,并在Google Workspace Admin控制台授权以下权限范围:
https://www.googleapis.com/auth/admin.directory.user.securityhttps://www.googleapis.com/auth/script.projects(你已配置的权限)
- 服务账号关联的管理员账号拥有修改用户安全设置的权限(建议使用超级管理员角色)
单个用户启用操作示例
通过模拟目标用户身份,调用Admin SDK接口修改其Apps Script API启用状态:
// 假设已通过服务账号获取到目标用户的accessToken const userEmail = "target-user@your-domain.com"; const apiUrl = `https://admin.googleapis.com/admin/directory/v1/users/${userEmail}/settings/apps/script`; const payload = JSON.stringify({ enabled: true }); const response = UrlFetchApp.fetch(apiUrl, { method: 'put', headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' }, payload: payload }); // 验证响应 console.log(`启用状态修改结果: ${response.getResponseCode()}`);
批量处理域内所有用户
- 调用Admin SDK Directory API的用户列表接口,获取域内所有用户邮箱:
const listUrl = "https://admin.googleapis.com/admin/directory/v1/users?domain=your-domain.com&maxResults=500"; const listResponse = UrlFetchApp.fetch(listUrl, { headers: { 'Authorization': `Bearer ${adminAccessToken}` } }); const users = JSON.parse(listResponse.getContentText()).users; - 遍历用户列表,逐个执行上述启用操作(注意控制请求频率,避免触发API配额限制)
关键注意事项
- 必须以目标用户的身份模拟调用接口,服务账号直接调用无法修改其他用户的个人设置
- 操作前先针对单个用户测试,确认设置生效后再批量执行
- 确保API调用在配额范围内,批量操作可添加间隔延迟避免被限流
内容的提问来源于stack exchange,提问作者Daniele Debiagi
相关产品推荐
相关产品推荐

