调用Google Script网络应用仅适用于其他Google脚本中的域内用户

时间:2017-08-18 00:00:16

标签: google-apps-script

我将Google脚本部署为网络应用程序,不幸的是由于公司政策,我必须部署它并将其提供给域内的任何人,而不是任何人甚至匿名。

这是网络应用代码

function doPost(e) {
    var functionName = JSON.parse(e.postData.contents).functionName;
    return ContentService.createTextOutput(JSON.stringify({result:functionName}))
    .setMimeType(ContentService.MimeType.JSON);  
}

以下是我试图通过它调用Web应用程序的Google Script代码,我尝试在请求标头中传递访问令牌。

function callWebApp(functionName) {
  var response = UrlFetchApp.fetch(url, {
    headers: {
        "Authorization": "Bearer " + ScriptApp.getOAuthToken(),
    },
    contentType: 'application/json',
    muteHttpExceptions:true,
   method : 'post',
    payload:JSON.stringify({functionName: functionName}),

  });

  Logger.log(response)

}

1 个答案:

答案 0 :(得分:0)

您可以使用Session服务之类的内容,并过滤掉不在您公司域中的用户。

例如:

var user = Session.getActiveUser().getEmail();

if(user.split('@')[1] === 'your.company.domain') {
  //do something
}