Gmail API показывает пустое тело при получении сообщения

Когда я отправляю запрос на получение тела письма, API Gmail возвращает все, кроме данных тела в объекте полезной нагрузки.

Вещи, которые я пробовал до сих пор

  • Метод "Смотреть" уже реализован и работает нормально
  • Как вы можете видеть на скриншоте, в ответе указано «snipped», что означает, что получение сообщения работает, но данные тела и поле «raw» по-прежнему пусты.
  • Я правильно использую идентификатор истории (сохраняя текущий для использования в последующих запросах)
  • обновить все зависимости до последней стабильной версии

Я что-то упустил?

      func GetEmail(srv *gmail.Service, historyId uint64) (string, string) {
    hist := getHistory(srv, historyId)

    for _, h := range hist.History {
        for _, m := range h.MessagesAdded {
            id := m.Message.Id
            mailContent, err := srv.Users.Messages.Get("me", id).Format("full").Do()
            if err != nil {
                log.Println("error when getting mail content: ", err)
            }

            if mailContent != nil {
                if mailContent.Payload != nil {
                    payload := mailContent.Payload.Body
                    data, err := b64.RawURLEncoding.DecodeString(payload.Data)
                    if err != nil {
                        log.Println("error b64 decoding: ", err)
                    }
                    body := string(data)

                    if len(body) > 0 {
                        subject := getSubject(mailContent)
                        log.Println("subject ", subject)
                        return body, subject
                    }
                }
            } 
        }
    }

    return "No email to process, something's wrong - GetEmail func", ""
}

0 ответов

Другие вопросы по тегам