我想发布一个使用Google Apps脚本构建的免费网络应用,但我想知道谁在使用这个网络应用程序(至少是用户电子邮件地址)。该应用程序将以访问应用程序的用户身份运行,并可供任何人使用。
我知道使用ScriptDb并保存Session.getUser()。getEmail()的方法,但我不想在这个App中使用这种方法。
还有其他方法吗?
谢谢,Fausto
答案 0 :(得分:1)
您可以将用户的电子邮件保存在任何地方,在您方便的地方进行操作。如果您不喜欢ScriptDb
,请在Spreadsheet
上执行此操作。
SpreadsheetApp.openById('your-spreadsheet-key').getSheetByName('Sheet1').
appendRow([new Date(), Session.getActiveUser().getEmail()]);
显然,此电子表格必须与“有链接的任何人”共享。或者,您可以设置Google表单并使用它发送信息。它不是公共API,但使用UrlFetch
非常简单。
答案 1 :(得分:1)
您可以创建另一个webapp,其中当前的webapp将使用urlfetch以静默方式将活动用户邮件发布到电子表格等。
支持应用。将其发布为webapp,以便在您的凭据和匿名访问下运行。确保获取此webapp的URL。这将在主webapp中使用。
function doGet(e) {
var user = e.parameter.user;
SpreadsheetApp.openById('id of ss where user emailwill be saved').getSheets()[0].getRange('A1').setValue(user);
}
在你的主要webapp中 使用,遵循以下代码行
var user = Session.getActiveUser();
UrlFetchApp.fetch('https://script.google.com/macros/s/xxxxxxxxxxx/exec?user='+user); //URL is the supporting webapp url with parameter