0

我想发布一个使用 Google Apps 脚本构建的免费网络应用程序,但我想知道谁在使用这个网络应用程序(至少是用户电子邮件地址)。该应用程序将作为访问该应用程序的用户运行并且可供任何人使用。

我知道一种使用 ScriptDb 并保存 Session.getUser().getEmail() 的方法,但我宁愿不将此方法用于此应用程序。

有没有其他方法可以做到这一点?

谢谢,福斯托

4

2 回答 2

1

您可以将用户的电子邮件保存在任何地方,在您更方便的地方进行。如果你不喜欢ScriptDb做一个Spreadsheet例子。

SpreadsheetApp.openById('your-spreadsheet-key').getSheetByName('Sheet1').
  appendRow([new Date(), Session.getActiveUser().getEmail()]);

显然,必须将此电子表格共享给“知道链接的任何人”。或者,您可以设置 Google 表单并使用它发送信息。它不是公共 API,但使用起来相当简单UrlFetch

于 2012-10-22T07:31:43.350 回答
1

您可以创建另一个 web 应用程序,当前的 web 应用程序将使用 urlfetch 静默地将活动用户邮件发布到电子表格等。

配套应用。将其发布为 web 应用程序,以在您的凭据下运行并具有匿名访问权限。确保获取此 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
于 2012-10-22T07:38:29.597 回答