Sto utilizzando le notifiche push di Gmail con Google PubSub e ho un'etichetta personalizzata che desidero monitorare per eventuali modifiche. Io uso il seguente codice per registrare un orologio per l'etichetta (Id del marchio è Label_1)API Gmail Guarda non filtrare per etichetta
WatchRequest wr = new WatchRequest();
wr.TopicName = "projects/" + primaryLink.ggProjectId + "/topics/iLink" + segmentId;
if (labels != null && labels.Count > 0)
{
wr.LabelIds = new List<string>();
wr.LabelIds.Add("Label_1");
wr.LabelFilterAction = "include";
}
WatchResponse wrr = gs.Users.Watch(wr, emailAccount).Execute();
return "HistoryId " + wrr.HistoryId.ToString();
}
L'orologio registra OK. Il problema è che ricevo notifiche push per qualsiasi modifica a Gmail, non solo quelle sotto l'etichetta.
Sono supportate le etichette personalizzate?
Le etichette degli utenti dovrebbero funzionare bene. Sei sicuro che non sia stata apportata una modifica di etichetta diversa a un messaggio che _also_ aveva Label_1? (ad esempio, un messaggio Label_1 è stato contrassegnato come non letto, ma Label_1 non è stato modificato sul messaggio.) –
Ad esempio, quando si invia un messaggio di posta elettronica, questo non è correlato all'etichetta. Originariamente c'era un orologio per l'utente senza etichette specificate. Un nuovo comando di controllo (con un filtro di etichetta) sostituisce l'orologio precedente? Ho anche provato a chiamare Stop() prima del nuovo comando? – PNC
Un orologio() dovrebbe sovrascrivere quello precedente. Potresti chiamare stop() e lasciarlo in quel modo per un po 'di tempo per assicurarti che il vecchio sia andato via (in tal caso sarebbe un bug che il nuovo orologio() non stia sovrascrivendo quello vecchio). –