Google apps script 在App Maker中使用应用脚本中的自定义库:授权问题

Google apps script 在App Maker中使用应用脚本中的自定义库:授权问题,google-apps-script,google-app-maker,Google Apps Script,Google App Maker,我正在应用程序脚本中使用此代码 function getUserObjByEmail(email){ // Same as using AdminDirectory class. var apiUrl = "https://www.googleapis.com/admin/directory/v1/users/"+email+"?fields=id"; var token = ScriptApp.getOAuthToken(); var header = {"A

我正在应用程序脚本中使用此代码

function getUserObjByEmail(email){

    // Same as using AdminDirectory class.
    var apiUrl = "https://www.googleapis.com/admin/directory/v1/users/"+email+"?fields=id";
    var token = ScriptApp.getOAuthToken();
    var header = {"Authorization":"Bearer " + token};
    var options = {
        "method": "GET",
        "headers": header
    };

    var response = JSON.parse(UrlFetchApp.fetch(apiUrl, options));
    return response;
}
我将其作为App Maker项目中的函数运行。当我使用该应用程序时,事情进展顺利,因为我有一个管理员角色(我猜,不确定),但当我们域中的其他普通用户开始使用部署的AppMaker应用程序时,问题就会出现。我检查了服务器日志,其中包含以下消息:

Exception: Request failed for 
https://www.googleapis.com/admin/directory/v1/users/email@domain.com?fields=id 
returned code 403. 
Truncated server response: { "error": { "errors": [ { "domain": "global",
"reason": "forbidden", "message": "Not Authorized to access this
resource/api" ... (use muteHttpExceptions option to examine full response)
你知道怎么解决这个问题吗?我已手动添加应用程序脚本库所需的作用域,我添加了以下内容:

"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/admin.directory.user"

发生这种情况的原因是您拥有管理员权限,否则您将收到相同的错误消息。其他用户没有管理员权限,因此会出现错误。要解决此问题,您可以部署作为开发人员运行的应用程序,也可以使用服务帐户模拟管理员并执行此过程

关于第一种方法,您可以在这里找到更多信息

关于第二种方法,您可以使用以下应用程序脚本库

此外,如果您不需要获取自定义模式信息,那么您可以简单地使用一个目录模型,这应该适用于所有用户。请检查此处的参考: