我正在开发一个协作 Intranet 站点,但我在 Google 站点中遇到了 Google Apps 脚本的问题。当我开发时,我与我的用户帐户相关联。但是,我编写的所有脚本都将在我的帐户上下文下执行,但我希望我的脚本可以访问另一个帐户的上下文。例如,我编写了一个脚本,可以为您提供 Gmail 中未读邮件的数量。但是此脚本将始终给出作为脚本所有者的帐户的未读邮件数。你可以理解这对我来说是一个严重的问题。
我希望你能帮助我,因为我不知道这是否可能以及我该怎么做。
非常感谢。
我正在开发一个协作 Intranet 站点,但我在 Google 站点中遇到了 Google Apps 脚本的问题。当我开发时,我与我的用户帐户相关联。但是,我编写的所有脚本都将在我的帐户上下文下执行,但我希望我的脚本可以访问另一个帐户的上下文。例如,我编写了一个脚本,可以为您提供 Gmail 中未读邮件的数量。但是此脚本将始终给出作为脚本所有者的帐户的未读邮件数。你可以理解这对我来说是一个严重的问题。
我希望你能帮助我,因为我不知道这是否可能以及我该怎么做。
非常感谢。
嵌入在 Google 站点中的 Google Apps 脚本不可能在脚本所有者之外的任何其他帐户下运行。这是出于 Google 安全考虑而设计的限制。
如果您使用的是自定义域(即 Google Apps for Business)。可以获取查看用户 id,如果您是域管理员,则某些 API 允许域管理员模拟域的任何用户。我不确定GMail是否允许这样做。
但是这个“模拟功能”并没有内置在 Apps Script (IRRC) 中,因此您必须使用 UrlFetch 直接访问这些 API,这更加困难和麻烦。但取决于您的编程技能,这可能很容易做到。
似乎他们在“部署网络应用程序”中添加了此功能,但尚未更新 Google Apps 脚本的 Google 协作平台部分以支持此新功能。请团队中的任何人确认。
我相信 user1442074 是正确的。在 Deploy Web App 下有一个选项:
Execute this app as:
User Accessing the web app
Users will be asked to Authorize the Script
这样做的好处是他们可以修改自己的文档。缺点是他们无法访问站点管理员创建的任何文档(除非它们是公开的)。
我知道这适用于文档。不确定它是否适用于邮件。