【发布时间】:2023-03-08 03:28:01
【问题描述】:
我正在尝试构建一个包含 2 个外部 API 调用的 Gmail 插件。第一个很快(~200ms),第二个很慢(~5s)。因此,我想先用第一次获取的结果构建卡片,然后在第二次调用完成后更新卡片。
是否可以:
- 每次请求完成时调用
fetchAll并构建和渲染卡片 - 在初始渲染完成后触发函数(
return card.build()之后) - 更新根卡不返回(我试过
CardService.newNavigation().popToRoot().updateCard(card.build())没有成功)
任何呈现卡片并在获取数据后更新卡片的首选方式将不胜感激!
如果有用的话,下面是一个示例函数。
function onGmailMessage(e) {
// Fetching email
var messageId = e.gmail.messageId;
var accessToken = e.gmail.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var message = GmailApp.getMessageById(messageId);
// Preparing requests
var data = {
'text': message.getPlainBody(),
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(data)
};
// Fetching responses. Here I would love to first display
// createCard(response_1) and then when the second call finishes
// return createCard(response_1 + '/n' + response_2)
var response_1 = UrlFetchApp.fetch('http://API_1/', options);
var response_2 = UrlFetchApp.fetch('http://API_2/', options);
return createCard(response_1 + '/n' + response_2);
【问题讨论】:
标签: google-apps-script gmail-addons