Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何知道谁在使用用Google Apps脚本构建的Webapp?_Google Apps Script - Fatal编程技术网

Google apps script 如何知道谁在使用用Google Apps脚本构建的Webapp?

Google apps script 如何知道谁在使用用Google Apps脚本构建的Webapp?,google-apps-script,Google Apps Script,我想发布一个用Google Apps脚本构建的免费Web应用程序,但我想知道谁在使用这个Web应用程序(至少是用户电子邮件地址)。该应用程序将以用户访问该应用程序的身份运行,并可供任何人使用 我知道一种使用ScriptDb和保存Session.getUser().getEmail()的方法,但我不想在这个应用程序中使用这种方法 还有别的方法吗 谢谢,Fausto您可以将用户的电子邮件保存在任何地方,在您更方便的地方保存。例如,如果您不喜欢ScriptDb,请在电子表格上执行该操作 Spreads

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

我知道一种使用ScriptDb和保存Session.getUser().getEmail()的方法,但我不想在这个应用程序中使用这种方法

还有别的方法吗


谢谢,Fausto

您可以将用户的电子邮件保存在任何地方,在您更方便的地方保存。例如,如果您不喜欢
ScriptDb
,请在
电子表格上执行该操作

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

显然,该电子表格必须共享给“任何有链接的人”。或者,您可以设置一个谷歌表单,并使用它发送信息。它不是一个公共API,但使用
UrlFetch

非常简单。您可以创建另一个webapp,其中当前webapp将使用UrlFetch以静默方式将活动用户的邮件发布到电子表格等

支持应用程序。将其发布为webapp,以在您的凭据下运行,并具有匿名访问权限。确保获取此Web应用程序的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

恐怕除了向你的用户询问他的电子邮件地址之外没有其他方法了谢谢+Srik,我看到GAS webapp请求授权,同时提到脚本可以“查看你的电子邮件地址”,我认为这与收集用户的电子邮件有关Hanks+Waqar Ahmad,这对于其他功能来说也是个好主意//从另一个角度来看:我看到GAS webapp请求授权,同时提到脚本可以“查看您的电子邮件地址”,我想这与收集用户的电子邮件有关Hanks+Abreu,正如我之前提到的,我看到GAS webapp在提到脚本可以“查看您的电子邮件地址”时请求授权,我想这与收集用户的电子邮件有关>知道这是什么吗?是的,如果您的应用程序脚本代码有一个
会话。getActiveUser().getEmail()
在提示用户“安装”时随时调用谷歌会通知他你得到了他的地址。你如何处理这些信息取决于你自己。这只是为了让用户知道他在你的应用程序上不是“匿名的”。如果你保留任何设置,大多数应用程序都会这样做,这样你就可以区分不同的用户。事实上,这是我最初的想法,但是当测试一个只有goGet中一行的Web应用程序时(var userEmail=Session.getUser().getEmail();),Web应用程序会请求授权,但不会提及“查看你的电子邮件地址”,也没有任何服务,您是否使用其他帐户进行过测试?你自己的可能不同。是的,我有,来自不同的领域。你也可以试试,让我知道它要你做什么