Как отфильтровать почтовый ящик Google Api, чтобы читать только основные сообщения? - PullRequest
0 голосов
/ 06 апреля 2019

Я сделал скрипт, чтобы проверить, есть ли новые электронные письма в моем почтовом ящике, но он возвращает электронные письма (Gmail) из поля Main, Social и Promotions, но я просто хочу прочитать один из окна Main.

Это скрипт для моего IA

        # Call the Gmail API to fetch INBOX

        results = service.users().messages().list(userId='me',labelIds = ['INBOX', 'UNREAD']).execute()
        messages = results.get('messages', [])


        if not messages:
            frase = 'Sem novas mensagens na caixa de email'
            a = Pesquise(frase)
            a.fala(frase)
        else:
            for message in messages:
                msg = service.users().messages().get(userId='me', id=message['id']).execute()
                payld = msg['payload'] # get payload of the message 
                headr = payld['headers'] # get header of the payload
                for one in headr: # getting the Subject
                    if one['name'] == 'Subject':
                        msg_subject = remover_acentos(one['value'])
                    else:
                        pass
                frase = 'Hugo, novo email na caixa de entrada, ' + msg_subject
                a = Pesquise(frase)
                a.fala(frase)
        sleep(600)
except Exception as err:
    print err

Я просто хочу, чтобы скрипт читал Основное окно, а не Основное, Социальное и Акции.

1 Ответ

0 голосов
/ 08 апреля 2019

Исходя из ответа SGC , вы можете добавить следующий q параметр к вашему Users.messages: list:

in:inbox is:unread -category:(promotions OR social)

Результат будет примерно таким:

{
 "messages": [
  {
   "id": "169f891015afd26b",
   "threadId": "169f891015afd26b"
  },
  {
   "id": "169f67bfu70eed28",
   "threadId": "169f67bf5d0eed28"
  },
  {
   "id": "169f65c4bea507b9",
   "threadId": "169f27c4bea507b9"
  },
  {
   "id": "169ef58fd53f6c1d",
   "threadId": "169ef58fd53f6c1d"
  },
  {
   "id": "169eecy7846c17ca",
   "threadId": "169eecy7846c17ca"
  },
  {
   "id": "169ea5df63c40128",
   "threadId": "169ea5df63c40128"
  }
 ],
 "resultSizeEstimate": 6
}

Вы можете попробовать это здесь .

...