Как получить флаги сообщений, как в Gmail API

Я пытаюсь получать сообщения электронной почты от Gmail с помощью RESTful API и не понимаю, как получить флаги сообщений (прочитано/непрочитано и т. д.). Есть ли способ получить флаги сообщений из Gmail с помощью RESTful API?

Спасибо.


person SlavaG    schedule 24.07.2014    source источник


Ответы (3)


Что вы подразумеваете под «флагами» и «папками»? Вы привыкли использовать IMAP и ссылаться на него в этом смысле? то, что вы обычно хотите, это смотреть на ярлыки типа «НЕПРОЧИТАНО». эти метки являются жестко заданными системными метками и задокументированы по адресу: https://developers.google.com/gmail/api/guides/labels

это те точные значения, которые никогда не переводились на другие языки, как веб-интерфейс user.

В gmail нет «флагов» или «папок», только ярлыки. флаги и концепции папок (несколько хакерски) предоставлены для поддержки IMAP. если вы хотите увидеть все непрочитанные сообщения в папке «Входящие», просто сделайте что-то вроде:

>>> messages.list(labelIds=["INBOX", "UNREAD'])
person Eric D    schedule 11.08.2014
comment
Да, раньше я работал с IMAP, а теперь перехожу с него на Gmail RESTFul API. Спасибо за ответ. - person SlavaG; 12.08.2014

Статус сообщения «прочитано/непрочитано» определяется наличием метки «НЕПРОЧИТАНО». Вы также можете увидеть, помечено ли сообщение звездочкой. См. раздел Управление ярлыками.

person Brandon Jewett-Hall    schedule 24.07.2014
comment
Интересно, могу ли я полагаться на названия лейблов? Они одинаковы для любого языка или UNERAD только для английского? А еще я думал, что в списке ярлыков, которые я получаю от Message, я вижу только ярлыки (папки), но теперь мне нужно отфильтровать папки и флаги. Очень запутанно - ИМХО. В любом случае спасибо, было полезно. - person SlavaG; 25.07.2014
comment
Папки и флаги — это понятия IMAP, они плохо соотносятся с Gmail. Gmail IMAP делает все возможное, чтобы соответствовать стандарту IMAP, но это не всегда очевидно. В Gmail все помечено, даже INBOX и UNREAD. Эти идентификаторы ярлыков системы являются стандартными и не меняются: developers.google.com/gmail/ API/направляющие/метки - person Eric D; 15.04.2016
comment
@SlavaG да, кажется, имена меток указаны в документах, и не переведены в API - person guival; 13.09.2017

Вы можете сделать это как:

ListMessagesResponse emails = service.users().messages().list("me").setQ("label:UNREAD").execute();
// Getting my unread mails.

И это работает с любым языком.

person Diego Jovanovič    schedule 28.07.2014
comment
Это не то, что я ищу, я хотел получить все сообщения и их флаги, а не только непрочитанные сообщения. Использовать метки для создания флагов некрасиво :). - person SlavaG; 28.07.2014