【问题标题】:Open Gmail draft created in Gmail API in browser window在浏览器窗口中打开在 Gmail API 中创建的 Gmail 草稿
【发布时间】:2015-08-31 04:01:26
【问题描述】:

根据SO thread,我应该能够直接转到使用 Gmail REST API 创建的 Gmail 草稿邮件,使用格式如下的超链接:

https://mail.google.com/mail/#drafts?compose={ThreadId}

但是,它不起作用。我作为对 Gmail API 调用的响应而获得的线程 ID 不会打开创建的草稿消息。真正奇怪的是,当我从 Gmail(我使用 API 创建的)打开草稿时,线程 ID 在 URL 中匹配一瞬间然后发生变化。

如何使用 message.threadId 直接打开草稿消息?我也希望它是一条弹出消息,并且应该可以通过 this thread 实现,但让草稿完全展示是我的首要任务。

【问题讨论】:

  • Gmail 开发者:有没有办法在浏览器中打开草稿邮件?根据 API 文档:developers.google.com/gmail/api/v1/reference/users/drafts/send 我应该能够使用“草稿的不可变 ID”,但如果它发生变化,我该怎么做?这是 API 中的错误吗?
  • 我最初的问题没有收到答案,所以我重新表述一下:如果不能使用草稿的线程ID,返回它的目的是什么?它以 JSON 格式从 API 调用返回。它有什么用吗?如果没有,似乎是不必要的开销。即使每次打开/编辑草稿时线程 ID 都会发生变化,我只是在寻找一种方法来最初打开它,在我使用 Gmail API 创建它之后立即打开它。提前感谢您的解决方案或解释。
  • 这项工作:"https://mail.google.com/mail/ca/u/0/#drafts/" + draftResponse.getMessage().getThreadId() 致谢:@Chris Wood 来自这个 SO 问题 stackoverflow.com/q/50124112/455449(请参阅下面的评论)
  • ... 而且,threadId 的用途完全不同——它将线程中相关的所有单独消息绑定在一起(由 UI 支持);通过观察,它似乎等于线程中第一条消息的 messageId。

标签: hyperlink google-api gmail gmail-api


【解决方案1】:

草稿的线程 ID/消息 ID 不稳定。也就是说,每次编辑/保存草稿时,它们都会发生变化。唯一稳定的是草稿 id,然而,这在 gmail ui 中不可用。

【讨论】:

  • 我创建了一个 Excel 应用程序,我的客户通过 VBA 使用 Gmail API (oAuth2) 发送多个邮件合并类型的电子邮件。在发送大量电子邮件之前,我希望他们能够准确预览 HTML 格式的电子邮件的外观(他们使用纯文本和 Excel 表单中的 html 代码创建它)。有一个预览按钮,我希望它打开 Gmail 草稿。他们只需要查看它,我不关心他们编辑和重新保存草稿。我只是想让他们在发送之前看看它会是什么样子。
【解决方案2】:

Users.drafts.create API call 返回一个包含草稿 ID 的 User.drafts resource。草稿 ID 与消息或线程 ID 不同,但您可以调用 Users.drafts.getUsers.drafts.list,这两者都可以让您将草稿 ID 与线程 ID 和消息 ID 相关联。

【讨论】:

    猜你喜欢
    • 2021-01-09
    • 2018-02-20
    • 2014-10-19
    • 2018-04-19
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    相关资源
    最近更新 更多