2015-07-30 24 views
7

Alıcımın, GMAIL'in push bildirimini kullanarak e-postama zaten yanıt verip vermediğini öğrenecek bir uygulama yapmaya çalışıyorum. İyi çalışıyor, ancak sorun şu ki, gmail'imde yapılan tüm değişiklikler için bildirim alıyorum. İşte Gmail push bildirimi yalnızca yeni bir ileti geldiğinde

i 'labelFilterAction' kullanarak çalıştı Sonra
request = { 
     'labelIds': ['UNREAD'], 
     'topicName': topic, 
     'labelFilterAction': 'include' 
    } 
service.users().watch(userId=user.google_id, body=request).execute() 

kullanılan kod: Ben hiç bir bildirim almıyorum, bu bir ile

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

'dışarıda'. herhangi bir öneri?

+0

Yeni çalışma, okunmamış mesajlar da 'INBOX'-etiket var, ben tüm yeni mesajlar hariç tutulacağını düşünüyoruz. System_labels.remove ('INBOX') 'ı da deneyin ve en azından çok fazla mesajı filtreleyebilirsiniz, ama belki de hepsi değil. – Tholle

+0

Bunu yapmaya çalıştım, ancak hala herhangi bir bildirim almadım. – khulas15

+0

Hmm ... system_labels.remove ('INBOX') ',' system_labels.remove ('UNREAD') 've' system_labels.remove ('CATEGORY_PERSONAL') 'ı deneyin. Bence bu kadar! :) – Tholle

cevap

0

piton kodunu

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

Bu zaten OP'de olandan farklı mıdır? – guival