首页 > 解决方案 > 通过 google gmail api 仅下载电子邮件回复中的新内容

问题描述

我正在尝试通过 google API 访问 Gmail 邮件。

https://developers.google.com/gmail/api/v1/reference/users/threads

但是有效负载字段返回电子邮件正文的 base64。当电子邮件在线程中时,通常是回复以前的电子邮件。因此,只有回复部分才有用。回复部分可以通过GUI界面显示。有没有办法通过 API 只获取回复部分?

标签: restgoogle-apigmail-api

解决方案


不幸的是,没有直接的方法可以获取每个线程的最后回复。

如果要检索电子邮件线程的最后回复,首先应使用如下请求检索所有消息:GET

GET https://www.googleapis.com/gmail/v1/users/userId/messages

请求响应将如下所示:

{
  "messages": [
    users.messages Resource
  ],
  "nextPageToken": string,
  "resultSizeEstimate": unsigned integer
}

资源users.messages看起来像这样:

{
   "id": "",
   "threadId": ""
}

list所有users.messages资源中,包含相同 threadId资源的是实际上包含回复的电子邮件。

所以为了得到最后一个回复,你可以找出哪个threadIds出现了多次,然后检索它的最后一次出现,因为它是最后一个回复。或者,如果您想要所有回复(原始电子邮件除外),您可以检索除第一个回复(由原始电子邮件表示)之外的所有回复。

最后,要检索消息,您可以使用GET如下请求:

GET https://www.googleapis.com/gmail/v1/users/userId/messages/id

注意:userId您要从中检索电子邮件/回复的电子邮件地址id表示,而id由消息的 表示。

参考


推荐阅读