You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在已打开的Gmail回复窗口插入插件建议回复?

解决Gmail Add-on插入建议到已打开回复窗口的问题

你的问题核心在于setGmailDraft()方法的设计:当已有打开的回复窗口(对应一个临时草稿)时,该方法不会覆盖或注入这个窗口,而是创建一个全新的独立草稿存入草稿箱。要实现直接插入已打开的回复窗口,需要改用更新现有草稿的API逻辑。

修改后的实现代码

function handleUseSuggestion(e) {
  // 优先检查是否存在已打开的回复窗口对应的草稿ID
  if (e.draftId) {
    // 获取当前打开的回复草稿
    const existingDraft = GmailApp.getDraftById(e.draftId);
    // 更新草稿内容为建议文本,保留原收件人、主题
    existingDraft.update(e.parameters.suggestion, existingDraft.getSubject(), existingDraft.getTo());
    // 返回更新草稿的响应,内容会直接同步到已打开的回复窗口
    return CardService.newUpdateDraftActionResponseBuilder()
      .setDraftId(e.draftId)
      .build();
  } else {
    // 回复窗口未打开时,沿用原逻辑创建新回复草稿并打开窗口
    const message = getCurrentMessage(e);
    const draft = message.createDraftReply(e.parameters.suggestion);
    return CardService.newComposeActionResponseBuilder()
      .setGmailDraft(draft)
      .build();
  }
}

关键说明

  • e.draftId的作用:当用户打开回复窗口时,Gmail会自动生成一个临时草稿,这个草稿的ID会通过事件对象e传递给Add-on,通过判断该参数是否存在,可精准区分两种场景。
  • UpdateDraftActionResponseBuilder:这个API专门用于更新已存在的草稿,调用后会直接将新内容同步到对应的打开窗口中,不会创建新草稿。
  • 权限要求:确保你的Add-on的OAuth权限范围包含https://www.googleapis.com/auth/gmail.modify,否则无法修改草稿内容。

内容的提问来源于stack exchange,提问作者Sam Henderson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:01:07