我已经开发了一个带有google脚本的web应用程序,并在我的gs中编写了这个程序。
var email = Session.getActiveUser().getEmail();
Logger.log(email);
// then do something to render the Email address on the page
发布脚本后,我使用另一个帐户登录并执行脚本。
然后页面显示如下:
这个应用程序是由另一个用户创建的,而不是由Google.创建的。
此应用程序可访问以下个人信息:电子邮件地址.
但是日志中仍然没有显示任何内容,页面也没有显示任何内容。
我只是不明白..。
发布于 2013-03-29 01:04:08
尽管Session.GetActiveUser()的参考文档中没有明确说明这一点,但我的测试证实,您的web应用程序需要作为访问web应用程序的用户执行,才能访问getActiveUser()。我使用了下面的代码和这里描述的日志库。
根据应用程序的用例,您可以使用创建包含集中式ScriptDB实例的库来捕获活动用户电子邮件。然后,创建另一个与您的私有电子表格和同一个scriptDB库一起工作的项目。
var LOG_FILENAME = 'your-log-doc'
var LOG_PATH = 'folder/subfolder/third-folder'
function doGet() {
//Change variable above to a good path and filename for you
var x = LogLibrary.InitializeLogging(LOG_PATH, LOG_FILENAME)
Logger.log(x)
var email = Session.getActiveUser().getEmail();
Logger.log("Start email logging")
Logger.log(email);
LogLibrary.fnSaveLog() //Write the save and flush the logger content
// then do something to render the Email address on the page
var HTMLToOutput = '<html><h1>A header</h1><p>' + email + '</p></html>';
return HtmlService.createHtmlOutput(HTMLToOutput);
}
发布于 2020-06-13 11:04:51
我做了一些测试,因为我正在寻找一个解决同样问题的方法,我的结论是:
最后,它取决于您将使用它的目的。
在google文档中,没有提到这个问题!!
对于返回电子邮件地址作为文本作为脚本或在google表单中使用的简单函数。等等:
function onOpen(){
var emailName = Session.getActiveUser().getEmail();
var optionsHtml = emailName.toString().split(",");
return optionsHtml;
}
发布于 2013-03-30 05:12:09
看看气体问题论坛(google)。哈克斯曾多次被提及。基本上,您需要将其设置为运行为用户访问应用程序,如果您期望用户从您的领域以外。更改该设置可能会破坏应用程序,这取决于它所需的权限。
https://stackoverflow.com/questions/15651781
复制相似问题