授权非管理员用户使用OAuth2使用AdminDirectory

时间:2016-06-23 11:05:49

标签: google-apps-script oauth-2.0 google-admin-sdk google-apps-for-education

我想授权非管理员用户使用AdminDirectory(Google apps Admin SDK的一部分)作为Google Apps脚本的一部分。基本上我希望用户根据用户名获取其他用户的全名列表。

我知道我可以使用OAuth2执行此操作,但我无法找到适用于Admin SDK-AdminDirectory的Google应用程序脚本代码的示例。

我创建了一个服务帐户,并拥有并拥有我的客户ID和密钥ID。接下来我需要做什么?我找到了这个https://developers.google.com/api-client-library/javascript/features/authentication,但我无法弄清楚如何获得授权。

以下是我的脚本的最小版本:(它将为授权用户生成用户edutett0707@edu.kristinehamn.se的全名)

function grupplistor() {     
   var userinfo = AdminDirectory.Users.get("edutett0707@edu.kristinehamn.se");
   Logger.log ([userinfo.name.fullName]);  
      }

2 个答案:

答案 0 :(得分:1)

尝试:

function grupplistor() {
  var userinfo = AdminDirectory.Users.get({
    userKey: "edutett0707@edu.kristinehamn.se", 
    viewType: "domain_public"});
   Logger.log ([userinfo.name.fullName]);
}

viewType domain_public告诉api返回有关与所有其他用户共享的用户的信息。

答案 1 :(得分:-1)

您可以尝试使用创建服务帐户及其凭据。

  

您需要创建服务帐户及其凭据。在此过程中,您需要收集稍后将用于Google Apps domain-wide delegation权限和代码的信息,以便使用您的服务帐户进行授权。您需要的三个项目是您的服务帐户:

     
      
  • 客户ID。
  •   
  • 私钥文件。
  •   
  • 电子邮件地址。
  •   
     

注意:只有具有Admin API访问权限的用户才能访问Admin SDK Directory API,因此您的服务帐户需要模拟其中一个用户访问Admin SDK Directory API。

来源:

希望这有帮助