我编写了一个Gmail插件,当用户打开电子邮件时,该插件会找到线程的标签(该线程只有一个标签)。如果有多个具有相同标签的线程,它将在这些线程中获取消息。否则,它将使用打开的电子邮件从线程中获取消息。
只有一个线程时,它工作正常。当有多个线程时,出现访问令牌错误: 拒绝访问:缺少授权访问令牌。请求:MailboxService.GetThread。 [行:xx(下面代码中突出显示的行)等
据我所知,该附件正确使用了访问令牌。电子邮件和线程的数量非常少(三个或四个线程,每个线程中都有一些消息)。
下面是我的代码的简化版本。有人知道为什么当我尝试访问其他线程的消息时为什么会出现访问令牌错误吗?
我尝试使用其他方法来构建消息数组(搜索,过滤器/函数等),但结果是相同的:包含触发电子邮件的单个线程没有问题,但是访问多个线程时访问被拒绝。
function getAllMessagesWithTheSameLabel(message) {
var threads = [];
var messages = [];
var thread = message.getThread();
var label = thread.getLabels()[0];
if (label.getThreads().length > 1) {
threads = label.getThreads();
**messages = GmailApp.getMessagesForThreads(threads);**
} else {
messages = GmailApp.getMessagesForThread(thread);
}
}