Gmail 指定在执行Google Apps脚本webapp请求时要使用的Google帐户

Gmail 指定在执行Google Apps脚本webapp请求时要使用的Google帐户,gmail,google-apps-script,google-account,Gmail,Google Apps Script,Google Account,我有一个浏览器扩展,当用户在Gmail中阅读电子邮件时,它会从URL中删除threadId,并使用此threadId使用Google应用程序脚本API获取间接数据 但是,分机不知道几个谷歌账户中的哪一个正在阅读这条消息;它只知道我的应用脚本webapp的URL和线程ID。因此,当执行fetch时,webapp会将请求解释为来自默认用户会话,这在某些情况下是错误的,因此在执行GmailApp.getThreadById(e.parameter.threadId)时会导致null 所以我想知道的是,

我有一个浏览器扩展,当用户在Gmail中阅读电子邮件时,它会从URL中删除threadId,并使用此threadId使用Google应用程序脚本API获取间接数据

但是,分机不知道几个谷歌账户中的哪一个正在阅读这条消息;它只知道我的应用脚本webapp的URL和线程ID。因此,当执行fetch时,webapp会将请求解释为来自默认用户会话,这在某些情况下是错误的,因此在执行
GmailApp.getThreadById(e.parameter.threadId)
时会导致
null


所以我想知道的是,在查询webapp时,是否可以指定要使用的谷歌帐户。除了要求用户注销所有其他帐户并将当前帐户设置为默认帐户之外,还有其他可能性吗?

不幸的是,Google Apps脚本不支持多次登录。有关更多信息,请参阅。

您可以通过谷歌应用程序脚本将authuser参数添加到您对应用程序的请求中

authuser参数的值是当前浏览器会话中登录的所有Google帐户的基于零的索引

现在,为了提取需要发送的索引值,您可以在当前页面上搜索包含authuser param的profiles.google.com链接,并从中提取您的值,然后将其与您的请求一起发送

链接可能如下所示:

https://profiles.google.com/ ... authuser=0
特别是对于gmail,url还包含当前的authuser索引,例如:

https://mail.google.com/mail/u/1/#inbox
上面的URL在末尾包含authuser值1(在片段之前和/u/之后)

我知道这很复杂,看起来更像黑客。但我认为这肯定是一个解决办法,除非谷歌提供了更好的方式来指定应用程序脚本请求的上下文

我希望这可能会有所帮助

谢谢