是否可以使用Session service或类似内容在Google Apps脚本中获取用户ID(而非电子邮件地址)。
我在GAS中没有看到任何对它的引用,但在GAE中,我能够从Users API获取用户ID。用户ID是唯一标识用户的标识符,即使用户更改其电子邮件地址也是如此。
我希望在GAS中使用相同的东西。
答案 0 :(得分:2)
是否可以使用会话服务或类似功能获取Google Apps脚本中的用户ID(而非电子邮件地址)?
是的,这是可能的。您可以通过利用AdminSDK Directory API which is accessible from App Script via the Admin Directory Advanced Google Service获取用户ID。
样本用法:
// NOTE: Admin Directory Advanced Service must be enabled first.
// Get first page of user ids for users in domain
var userIds = AdminDirectory.Users.list({"domain":"www.example.com"}).users.map(function(user) {
return user.id;
});
答案 1 :(得分:1)
使用"高级服务"驱动REST API以查询About
resource,这可以返回更加细致的user
对象:
function getInfo() {
var about = Drive.About.get();
// Use the name, permissionId, email, etc
var user = {
name: about.name,
permissionId: about.permissionId,
driveUser: about.user,
....
};
return user;
}
或Drive.Permissions.getIdForEmail
方法,如果这就是你想要的。
如果自动范围检测过于激进,您可以尝试将其中一个.readonly
范围添加到清单中:https://developers.google.com/drive/v2/reference/about/get#auth
注意:在您的Apps脚本项目中使用之前,您必须拥有enable the advanced service客户端库及其底层API。
另见: