Как создать черновик сообщения в существующей теме с помощью gmail API - PullRequest
0 голосов
/ 22 ноября 2018

Используя клиент Python для Google, я могу создавать новые сообщения в существующей теме с идентификатором threadId следующим образом:

message = (service.users().messages().send(userId='me', body={'threadId': <threadId>}, media_body=message['media_body'])
           .execute())

(здесь я использую media_body, поскольку он поддерживает конечную точку /uploadдля больших вложений)

Это прекрасно работает для сообщений, а необязательный параметр threadId задокументирован как https://developers.google.com/gmail/api/v1/reference/users/messages/send

Однако мне не удалось сделать то же самое при создании новых черновиков сообщений, ине вижу документов об этом на https://developers.google.com/gmail/api/v1/reference/users/drafts/create

Я пытался добавить threadId к черновому тексту при выполнении draft = service.users().drafts().create(userId=user_id, body={'threadId': <threadId>}, media_body=message_body['media_body']).execute() на этапе создания черновика, и он просто игнорируется.

Я также попытался добавить threadId в тело на этапе отправки черновика: message = service.users().drafts().send( userId='me', body={'id': draft_id, threadId': <threadId>}).execute(), и это также было проигнорировано.

В любом случае черновик сообщения просто создается в своей новой новой ветке.

Как создать черновик нового сообщения в существующем потоке с помощью API Gmail (и, в частности, с клиентом Python)?

1 Ответ

0 голосов
/ 23 ноября 2018

Согласно документации черновик может быть добавлен в поток как часть создания , обновления или отправки черновикасообщение.

Чтобы быть частью потока, сообщение или черновик должны соответствовать следующим критериям:

  1. Запрошенный threadId должен быть указан в Message или Draft.Message, которые вы предоставляете вместе с вашим запросом.
  2. Заголовки References и In-Reply-To должны быть установлены в соответствии со стандартом RFC 2822 .
  3. Заголовки Subject должны совпадать.

В документации также говорится, что в обоих примерах при создании черновика и при отправке сообщения выпросто добавит ключ threadId в паре с идентификатором потока к метаданным сообщения, объект message.

...