Google apps script 谷歌应用程序脚本doGet(e)获取用户电子邮件
当前 我想收集访问我的Google Apps脚本webapp的用户的用户电子邮件 为了实现这一点,我将Execute设置为“我”,并且有权访问:“任何拥有谷歌账户的人”Google apps script 谷歌应用程序脚本doGet(e)获取用户电子邮件,google-apps-script,web-applications,Google Apps Script,Web Applications,当前 我想收集访问我的Google Apps脚本webapp的用户的用户电子邮件 为了实现这一点,我将Execute设置为“我”,并且有权访问:“任何拥有谷歌账户的人” 函数doGet(e){ 让userEmail=Session.getActiveUser().getEmail() 返回HtmlService.createHtmlOutput( “电子邮件:“+userEmail+” ); } 然后,部署将创建一个EXEC链接: https://script.google.com/macro
函数doGet(e){
让userEmail=Session.getActiveUser().getEmail()
返回HtmlService.createHtmlOutput(
“电子邮件:“+userEmail+”
);
}
然后,部署将创建一个EXEC链接:
https://script.google.com/macros/s/1234................56789/exec
问题
当用户在匿名窗口IE或Firefox中访问执行链接时,会要求用户登录Google
用户登录后,页面返回:
电子邮件:
我想要什么
exec
链接,并被提示登录谷歌电子邮件:users@email.com
注释
我最近尝试添加:
"oauthScopes": [
"https://www.googleapis.com/auth/userinfo.email"
],
但是这没有效果。我相信你的目标如下
- 当用户登录Google并访问Web应用程序时,您希望检索该用户的电子邮件地址
- 根据您的问题,我确认您将Web应用部署为
和执行为:Me
谁有权访问该应用:任何拥有Google帐户的人。在这种情况下,为了实现您的目标,请按如下方式部署Web应用程序
和有权访问该应用程序的执行身份:访问web应用程序的用户
用户:任何拥有Google帐户的人
- 此外,在这种情况下,请将Web应用程序重新部署为新版本
https://www.googleapis.com/auth/userinfo.email
注:
- 如果上述设置无法解决您的问题,作为测试,请删除
来自“oauthScopes”:[“https://www.googleapis.com/auth/userinfo.email“],
并再次测试它appsscript.json
执行为:用户访问web应用程序
,因为该应用程序使用库,而访问该应用程序的用户无权访问这些库。@Wronski感谢您的回复。从您的问题中,我没有注意到您使用了Web应用程序库。所以我在问题中回答了你的剧本。这是因为我的技术差。对此我深表歉意。在现阶段,当库用于Web应用时,还需要将库和Web应用的GAS项目共享给用户。如果你不想分享它们,那么把这个库合并到Web应用的GAS项目中怎么样?这样,具有上述设置的Web应用可以在不共享的情况下使用。如果这也不是您期望的方向,我再次道歉。由于脚本是公共的,因此无法与使用该脚本的用户共享。考虑到维护通用脚本的并行代码库的成本,我们无法将库脚本合并到现有的应用程序中。@Wronski感谢您的回复。我不得不为我糟糕的英语水平道歉。考虑到为常见脚本维护并行代码库的成本,我无法理解。我可以问一下它的细节吗?@Wronski顺便说一句,当Web应用程序使用executeas:Me
时,Web应用程序的脚本由所有者运行。因此,我认为,当您想要检索每个用户的信息时,将设置为Execute as:user访问web app
将接近目标。我认为这是当前使用Web应用程序的规范。