Wyniki różnią się w interfejsie Gmaila i w interfejsie internetowym Gmaila, gdy używasz standardowego formatu zapytania opisanego tutaj - https://support.google.com/mail/answer/7190.Interfejs Gmail API nie zwraca poprawnych wiadomości e-mail w porównaniu do interfejsu internetowego Gmaila dla zapytań o datę
Problem dotyczy wyłącznie parametrów after/before i newer/older. Na przykład następujące zapytanie APi Gmaila "after: 2015/11/19 before: 2015/11/20" zwraca różne wyniki w porównaniu z uruchomieniem tego samego zapytania w interfejsie internetowym Gmaila. Interfejs internetowy wygląda poprawnie, a api zwraca e-maile od następnego dnia (20). Być może problem z konwersacją w strefie czasowej?
Sprawdzanie poprzednich pytań Widzę coś podobnego tutaj how to use GMAIL API query filter for datetime (serwer przetwarza zapytania jako czas PST). W takim przypadku warto zaktualizować dokumentację lub pomyśleć o możliwym rozwiązaniu.
Kroki prowadzące do odtworzenia problemu.
- Masz kilka wiadomości e-mail na koncie Gmail obejmującym poniższe terminy. Inc dni po i wcześniej.
- Uruchom po: 2015/11/19 przed: 2015/11/20 w interfejsie internetowym Gmaila.
- Wyślij zapytanie do aplikacji Gmail za pomocą "after: 2015/11/19 before: 2015/11/20" dla parametru q, używając https://developers.google.com/gmail/api/v1/reference/users/messages/list
- Porównaj wyniki. (Różnice występowały podczas uruchamiania tych kroków na koncie Gmail w Wielkiej Brytanii).
Powinny widzieć tylko e-maile z XIX, ale widzę e-maile z dnia 19 i 20, kiedy używają api. Sieć ui działa zgodnie z oczekiwaniami i zwraca tylko e-maile z datą 19.
FYI: Używałem również innych parametrów zapytania, takich jak "from: [email protected]" w połączeniu z parametrami przed/po lub nowszym/starszym. Chciałem uprościć zgłoszenie błędu/pytanie.
Również: Zapytania api, które robiłem z modułem węzła o nazwie node-gmail-api. Sprawdzanie kodu punkt końcowy używany jest kod „Wiadomości”:
body: 'GET ' + api + '/gmail/v1/users/me/messages/' + m.id + fields + '\n'
Czy problem, że „Wiadomości/lista” punkt końcowy jest nazywany „Wiadomości”, a nie? Jak odpowiedzieć na to pytanie? - Why does search in gmail API return different result than search in gmail website?
Czy to błąd/funkcja? Czy istnieje obejście takie jak użycie ms epok. (Również nie w docs jak widzę)
Dzięki
Witamy w Stack Overflow Dan! Sam się z tym zmagałem i przeszedłem do [drugiego zapytania dokładności] (http://stackoverflow.com/questions/28022819/listing-messages-with-more-precision-than-yyyy-mm-dd) . Następnie możesz wpisać 'after: AND before: '. Warte spróbowania! –
Tholle
Wielkie dzięki Tholle. To się udało! W JavaScript użyłem następującego po konwersji daty na epokę var after = "2015/11/19"; var myDateAfter = new Date (po + "00:00:00"); var myEpochAfter = myDateAfter.getTime()/1000.0; Byłoby miło, gdyby dokumenty były aktualizowane i/lub działały zgodnie z oczekiwaniami. –
Słodkie! :) Dodano odpowiedź. Zgadzam się, byłoby wspaniale, gdyby dokumentacja wspomniała o tym. – Tholle