2015-07-30 4 views
7

Próbuję utworzyć aplikację, która sprawdzi, czy odbiorca już odpowiedział na mój e-mail za pomocą powiadomienia push GMAIL. Działa dobrze, ale problem polega na tym, że otrzymuję powiadomienie o wszelkich zmianach w moim Gmailu.Otrzymuj powiadomienia push w Gmailu tylko wtedy, gdy przychodzi nowa wiadomość

Oto kod użyłem

request = { 
     'labelIds': ['UNREAD'], 
     'topicName': topic, 
     'labelFilterAction': 'include' 
    } 
service.users().watch(userId=user.google_id, body=request).execute() 

Potem próbowałem za pomocą „labelFilterAction”: „wykluczenie”

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() 

z tego, że nie otrzymuję żadnego powiadomienia w ogóle. jakaś sugestia?

+0

nowe, nieprzeczytane wiadomości ma 'INBOX'-label, tak więc myślę, że wszystkie nowe wiadomości zostaną wyłączone. Wypróbuj 'system_labels.remove ('INBOX')', a przynajmniej odfiltrujesz wiele wiadomości, ale może nie wszystkie. – Tholle

+0

Próbowałem to zrobić, ale nadal nie otrzymuję powiadomienia. – khulas15

+0

Hmm ... Wypróbuj 'system_labels.remove ('INBOX')', 'system_labels.remove ('UNREAD')' i 'system_labels.remove ('CATEGORY_PERSONAL')'. Myślę, że to jest to! :) – Tholle

Odpowiedz

0

pracy kodu Pythona

credentials = get_credentials(email) 
http = credentials.authorize(httplib2.Http()) 
service = discovery.build('gmail', 'v1', http=http) 

    request = { 
     'labelIds': ['CATEGORY_PERSONAL'], 
     'topicName': 'projects/myproject/topics/getNotification', 
     'labelFilterAction': 'exclude' 
    } 
service.users().watch(userId='me',body=request).execute() 
+1

Czym to się różni od tego, co jest już w OP? – guival

Powiązane problemy