【问题标题】:How to get the "body" and "subject" fields of a draft when extending compose UI?扩展撰写UI时如何获取草稿的“正文”和“主题”字段?
【发布时间】:2020-03-21 22:40:39
【问题描述】:

我们正在开发一个 Gmail 插件,我们在其中 extend the compose UI

这扩展了撰写窗口,您可以在其中撰写电子邮件。

我们需要正在撰写的邮件的“发件人”、“收件人”、“主题”和“正文”。

'From' 可以像这样从 Session 对象中读取

var mySelf = Session.getEffectiveUser().getEmail();

“To”可以从被调用函数的事件对象的 DraftMetadata 中读取。

function composeEmail(event) { console.log(event.draftMetadata.toRecipients); }

'Subject' 和 'Body' 不能从函数的事件对象中读取,因为它是一个 composeTrigger。参数包含这些对象:

{
  formInput = {}, 
  clientPlatform = web, 
  formInputs = {}, 
  parameters = {}, 
  draftMetadata = {
    toRecipients = [test @test.com],
    subject = ,
    bccRecipients = [],
    ccRecipients = []
  }
}

令我惊讶的是,主题键存在但未填写(是的,我确实输入了主题)。

问题

如何在扩展的 composer UI 中获取用户正在撰写的电子邮件的“主题”和“正文”?

额外信息

上下文触发动作包含以下对象作为事件对象:

{
  clientPlatform = web, 
  messageMetadata = {
    messageId = 16e agg7323451256989f68,
    accessToken = AAGdOAawdaAOW8PWchmdawdk0N13STKnBPMAOXVjZVHyQMfAawdBtgEIrS6N8y5h2BOZnKFPlfsl5VBsyPiF7YiONOoP7XVjKZawdi - E6vI - jVU92dPmfj3RNmXfawdawdeaNMrXehAFLm
  }
}

通过上下文触发器阅读电子邮件,将添加messageId,其中可以使用getBodygetSubject 方法。

【问题讨论】:

    标签: email google-apps-script gmail add-on


    【解决方案1】:

    截至目前,撰写触发事件从未返回 subject 字段的值。

    我为此here 填写了一个错误。单击 ★ 图标以关注此问题并获取更新。这也将有助于优先考虑此问题。

    作为一种解决方法,您可以使用上下文触发器来:

    1. 获取messageId
    2. 查找与 messageId 关联的草稿
    3. 通过draftId 获取草稿
    4. 从草稿的Headers 对象中获取主题行。

    这仅适用于回复特定消息的草稿。

    【讨论】:

    • 您好 Raserhin,感谢您填写问题。我已为该问题加注星标以帮助确定问题的优先级。上下文触发器确实是仅用于回复的选项。我们在编写消息时也确实需要它,但目前似乎没有这样做的选择。
    • 这似乎现在已修复,所以我可以看到阅读 gmail.subject 属性。尽管我无法访问在 compose 中为其创建回复的消息,但这是非常奇怪和令人失望的。 contextualTriggers 让我可以做各种聪明的事情,因为我可以知道源消息是什么。即使使用完整的https://www.googleapis.com/auth/gmail.readonly 范围,我也看不到撰写下的“replyTo”消息。如果它不能是动态的,那就真的不明白撰写 UI 的意义:-(
    【解决方案2】:

    我以前从未这样做过,所以这是一个猜测。我使用开发人员工具查看了撰写对话框 html,这就是我注意到的。

    似乎有一堆隐藏的输入用于存储输入到撰写对话框中的值。所以我会尝试类似的东西: formInputs.body 或者 formInput.body 从隐藏元素的名称中获取键的名称。这只是猜测。

    【讨论】:

    • 嗨库珀,谢谢您的猜测。 App Script 的代码在后端执行,因此任何客户端变量(如 windowdocument)都不可用。这样就不可能从渲染的前端读取任何内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多