скачать только новый контент в ответе по электронной почте от Google Gmail API - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь получить доступ к сообщениям Gmail через API Google.

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

Но поле полезной нагрузки возвращает base64 тела письма. Когда электронное письмо находится в потоке, оно обычно отвечает на предыдущее письмо Поэтому полезно показать только часть ответа. Часть ответа может быть показана интерфейсом GUI. Есть ли способ получить только часть ответа через API?

1 Ответ

0 голосов
/ 16 марта 2020

К сожалению, прямого способа получения последнего ответа для каждой темы не существует.

Если вы хотите получить последний ответ из темы электронной почты , вам следует прежде всего получить все сообщения , используя запрос 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, являются электронными письмами, которые на самом деле содержат ответов .

Таким образом, чтобы получить последний ответ, вы можете найти, какие threadId s появляются более одного раза , а затем извлекают последнее вхождение об этом как это последний ответ. Или, если вы хотите получить все ответы (кроме исходного электронного письма), вы можете получить все вхождения, кроме первого (которое представлено исходным электронным письмом).

Наконец, чтобы получить сообщение, которое вы можете используйте запрос GET следующим образом:

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

Примечание: * userId представлен адресом электронной почты, с которого вы хотите получить электронные письма / ответы, и id представлен id сообщения.

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...