2016-08-10 41 views
6

Pobieram wiadomości od Google Gmail API w pliku Node.JS, ale mam problem z wygenerowaniem lub pobraniem bezpośredniego linku do wiadomości e-mail.Uzyskaj bezpośredni adres URL do wiadomości e-mail z interfejsu API Gmaila (wiadomości na liście)

Obecnie używam następujący kod:

var link = 'https://mail.google.com/mail/u/0/#inbox/' + messageContent.threadId;

Ale jak u można zobaczyć, to zawsze przechodzi do podstawowej skrzynce użytkownika (/u/0/). E-maile, które próbuję połączyć, znajdują się w mojej drugiej i trzeciej skrzynce odbiorczej.

Próbowałem uzyskać numer skrzynki odbiorczej wiadomości e-mail przy użyciu get message call, ale niestety nie zwraca tych danych.

Próbowałem również następujący fragment kodu, ale to też nie działa. Po prostu ładuje moją główną skrzynkę odbiorczą.

var link = 'https://mail.google.com/mail/#inbox/' + messageContent.threadId;

Czy ktoś wie jak generować poprawny i bezpośredni link do wiadomości e-mail?

Z góry dziękuję.


przypadek testowy

pierwsze logowanie do dwóch lub więcej kont w Google. Jak widać na poniższym obrazku, jestem zalogowany na 3 kontach. Pierwszy (na górze) to moje konto główne. Pozostałe to konta wtórne.

Google Accounts

Link do mojego pierwotnego Gmail jest: https://mail.google.com/mail/u/0/ # Skrzynka/

Link do mojego drugiego rachunku jest: https://mail.google.com/mail/u/1/ # Skrzynka/

a link mojego trzeciego i ostatniego rachunku jest: https://mail.google.com/mail/u/2/ # skrzynka odbiorcza/

Liczby te zależą od kolejności, w jakiej zalogowano się na konta. Pierwsze konto, na które się logujesz, zawsze będzie Twoim głównym kontem.

Przyjmijmy więc 2527bfcqed7d54c1 jako przykładowy identyfikator wiadomości. Pozostaje tylko wygenerować bezpośredni link do wiadomości, ale problem polega tylko na tym, że znamy tylko e-maile, do których jest on podłączony, a nie numer skrzynki odbiorczej (np. /u/2).

Więc jeśli wiadomość istnieje w skrzynce odbiorczej /u/2, nie możemy uzyskać bezpośredniego linku. Ponieważ interfejs API nie zwraca numeru skrzynki odbiorczej, a https://mail.google.com/mail/#inbox/2527bfcqed7d54c1 zawsze przekieruje do podstawowej skrzynki odbiorczej /u/0.

+0

Spróbuj rozwiązanie podane w tym SO post - [Get bezpośredni link do wiadomości Gmaila przez Google API] (http://stackoverflow.com/questions/29415495/get-direct-link-to-gmail-message-via-google-api). – Teyam

+0

Próbowałem, ale to nie zadziałało. Przekierowuje mnie tylko do mojej pierwszej skrzynki odbiorczej i informuje, że wiadomość nie istnieje. Mam taki sam problem podczas łączenia z wydarzeniami w kalendarzu. – Tijme

Odpowiedz

10

Można dostarczyć parametr zapytania authuser o wartości adresu e-mail chcesz używać:

https://mail.google.com/[email protected]#all/1567f47dd61869df 

Działa to dla zwykłego klienta Gmail, ale to nie działa dla Google Odebrane od id wątku nie jest częścią adresu URL. Można jednak szukać unikalnego Message-ID nagłówku wiadomość, aby uzyskać podobny efekt:

https://inbox.google.com/search/rfc822msgid:<[email protected]>[email protected] 
+0

Naprawdę? To działa w przypadku wielokrotnego logowania? –

+0

@EricDeFriez Tak. W ten sposób zawsze tworzyłem linki niezależne od zalogowanych kont. – Tholle

+0

@Tholle Wydaje się działać. Czy możesz podać link do dokumentacji, czy jest to nieudokumentowane? – Tijme