2015-07-30 12 views
7

Sto cercando di creare un'app che verificherà se il destinatario ha già risposto alla mia email utilizzando la notifica push di GMAIL. Sta funzionando bene, ma il problema è che sto ricevendo notifiche per eventuali modifiche sul mio gmail.Ricevi notifiche push di Gmail solo quando arriva un nuovo messaggio

Ecco il codice che ho usato

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

poi ho provato ad utilizzare il 'labelFilterAction': 'escludo'

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

con questo, io non ricevo alcuna notifica a tutti. qualche suggerimento?

+0

Nuovo, messaggi non letti ha l'INBOX'-label 'pure, quindi penso che saranno esclusi tutti i nuovi messaggi. Prova 'system_labels.remove ('INBOX')', e almeno filtrerai un sacco di messaggi, ma forse non tutti. – Tholle

+0

Ho provato a farlo, ma non sto ancora ricevendo alcuna notifica. – khulas15

+0

Hmm ... Prova 'system_labels.remove ('INBOX')', 'system_labels.remove ('UNREAD')' e 'system_labels.remove ('CATEGORY_PERSONAL')'. Penso che sia così! :) – Tholle

risposta

0

lavoro codice Python

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

Com'è diverso da quello che c'è già nell'OP? – guival