在 Gmail Addons 中,如何访问 GmailApp.search 返回的所有线程的详细信息?
In Gmail Addons, how to get access to all threads' details returned by GmailApp.search?
使用以下方法,我得到错误:
"Missing access token for authorization. Request: MailboxService.GetThread"
在 var button [...]
行。
function createItemListCard() {
var card = CardService.newCardBuilder().setHeader(CardService.newCardHeader().setTitle('Item list'));
var section = CardService.newCardSection().setHeader("<b>Items</b>");
var threads = GmailApp.search("some search query")
for (var i = 0; i < threads.length; i++) {
var button = CardService.newTextButton().setText(threads[i].getFirstMessageSubject()).setOpenLink(CardService.newOpenLink().setUrl(threads[i].getPermalink()));
}
return card.build();
}
示例代码片段似乎在每条消息中使用访问令牌,例如:
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
但这根本没有帮助。很可能是由于访问所有线程而不仅仅是一条消息。 search
文档中提到的范围已经到位:https://mail.google.com/
必须有一种方法可以访问 Gmail 插件中 GmailApp.search
的结果。 怎么做?
您需要添加
https://www.googleapis.com/auth/gmail.readonly
到清单中的范围。
可能不明显的是您需要删除
https://www.googleapis.com/auth/gmail.addons.current.message.readonly
来自清单。应用程序脚本环境似乎从可用范围中选择了最严格的一组权限:如果清单中有两个范围,您将只会获得 current.message.readonly 权限(并且您将无法与任何其他消息)。
我还发现我需要完全卸载插件然后重新安装它才能使新范围生效。
使用以下方法,我得到错误:
"Missing access token for authorization. Request: MailboxService.GetThread"
在 var button [...]
行。
function createItemListCard() {
var card = CardService.newCardBuilder().setHeader(CardService.newCardHeader().setTitle('Item list'));
var section = CardService.newCardSection().setHeader("<b>Items</b>");
var threads = GmailApp.search("some search query")
for (var i = 0; i < threads.length; i++) {
var button = CardService.newTextButton().setText(threads[i].getFirstMessageSubject()).setOpenLink(CardService.newOpenLink().setUrl(threads[i].getPermalink()));
}
return card.build();
}
示例代码片段似乎在每条消息中使用访问令牌,例如:
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
但这根本没有帮助。很可能是由于访问所有线程而不仅仅是一条消息。 search
文档中提到的范围已经到位:https://mail.google.com/
必须有一种方法可以访问 Gmail 插件中 GmailApp.search
的结果。 怎么做?
您需要添加
https://www.googleapis.com/auth/gmail.readonly
到清单中的范围。
可能不明显的是您需要删除
https://www.googleapis.com/auth/gmail.addons.current.message.readonly
来自清单。应用程序脚本环境似乎从可用范围中选择了最严格的一组权限:如果清单中有两个范围,您将只会获得 current.message.readonly 权限(并且您将无法与任何其他消息)。
我还发现我需要完全卸载插件然后重新安装它才能使新范围生效。