【问题标题】:authorize non-admin users to use AdminDirectory using OAuth2使用 OAuth2 授权非管理员用户使用 AdminDirectory
【发布时间】:2016-10-25 16:22:11
【问题描述】:

我想授权非管理员用户使用 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]);  
      }

【问题讨论】:

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


    【解决方案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 返回共享给所有其他用户的用户信息。

    【讨论】:

      【解决方案2】:

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

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

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

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

      来源:

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-19
        • 1970-01-01
        • 1970-01-01
        • 2017-01-28
        • 2011-03-07
        • 2013-04-27
        • 2015-11-19
        相关资源
        最近更新 更多