Я пытаюсь создать приложение, которое выяснит, ответил ли получатель на мой адрес электронной почты с помощью push-уведомления GMAIL. Он работает хорошо, но проблема в том, что я получаю уведомление о любых изменениях в моем gmail.Получать уведомление о выпуске Gmail только при поступлении нового сообщения
Вот код, который я использовал
request = {
'labelIds': ['UNREAD'],
'topicName': topic,
'labelFilterAction': 'include'
}
service.users().watch(userId=user.google_id, body=request).execute()
затем я попытался с помощью «labelFilterAction»: «исключить»
system_labels = ['CATEGORY_UPDATES', 'UNREAD', 'DRAFT', 'CATEGORY_PROMOTIONS', 'INBOX', 'CATEGORY_SOCIAL', 'CATEGORY_PERSONAL', 'CATEGORY_FORUMS', 'TRASH', 'CHAT', 'IMPORTANT', 'SENT', 'STARRED', 'SPAM']
system_labels.remove('UNREAD')
request = {
'labelIds': system_labels,
'topicName': topic,
'labelFilterAction': 'exclude'
}
service.users().watch(userId=user.google_id, body=request).execute()
с этим, я не получаю никакого уведомления вообще. любое предложение?
новые, непрочитанные сообщения имеют 'INBOX'-метку, так что я думаю, что все новые сообщения будут исключены. Попробуйте 'system_labels.remove ('INBOX')' также, и вы по крайней мере отфильтровываете много сообщений, но, возможно, не все. – Tholle
Я пытался это сделать, но я до сих пор не получаю уведомления. – khulas15
Хмм ... Попробуйте 'system_labels.remove ('INBOX')', 'system_labels.remove ('UNREAD')' и 'system_labels.remove ('CATEGORY_PERSONAL')'. Я думаю, что все! :) – Tholle