2016-11-23 11 views
2

ユーザーのために時計を設定すると、時計を受信トレイに追加されたメッセージだけに制限する方法がありますか?Gmailウォッチを追加したメッセージだけに制限する方法はありますか?

ドキュメント(https://developers.google.com/gmail/api/v1/reference/users/watch)に基づいて、INBOX labelIdのオプションがあることがわかりますが、追加したメッセージだけに制限したいと思います。私たちは現在、後続のhistory.list呼び出しのfields文字列に 'history/messagesAdded'を渡すことによってこれを処理する必要があります。

答えて

1

残念ながらあなたはできません。あなたがしなければならないことは、

通知が届いたときの履歴を取得することです。履歴にはjsonが返され、新しいメッセージが追加された場合は'messagesAdded'が含まれます。

あなたは今、あなたは確認することができ、ここで(each is the history json)

if 'messagesAdded' in each: 
    labels = each["messagesAdded"][0]["message"]["labelIds"] 
    intersectionOfTwoArrays = list(set(predefinedLabels) & set(labels)) 

あなたがintersection of labelsを得る

predefinedLabels = ['UNREAD', 'CATEGORY_PERSONAL', 'INBOX'] 

以下のようなpredefined array of labelsを維持することができます。今、あなたは

if set(predefinedLabels) == set(intersectionOfTwoArrays): 
    #get the messageId and do what you want 

predefined labels

は最終的にあなたがfilter the notificationが希望できるようことを確認する必要が!

histroyIdを保存しておき notificationでそれを更新し、あなたがhistoryを取得するときにそれを使用することをお勧めします。更新された履歴のみを取得するには が役に立ちます。

私はサーバを構築するときにpythonを使用しました。以上のデモコードは、python

0

のように書かれています。新しいパラメータ "historyTypes"が追加されたようです。 "messageAdded"に設定した場合、APIはそのタイプの履歴レコードのみを返します。

関連する問題