2016-08-10 7 views
6

Node.JSのGoogle Gmail APIからメッセージを取得していますが、電子メールへの直接リンクの生成や取得に問題があります。Gmail APIから電子メールへの直接URLを取得する(リストメッセージ)

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

をしかし、uが見ることができるように、それは常にユーザーのプライマリ受信トレイ(/u/0/)へナビゲート:

現在、私は次のコードを使用しています。私がリンクしようとしているメールは、2番目と3番目の受信トレイにあります。

get message callを使用して電子メールの受信ボックス番号を取得しようとしましたが、残念ながらそのデータは返されません。

また、次のコードを試しましたが、うまくいきませんでした。私のメインの受信トレイを読み込むだけです。

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

誰もが電子メールに正しいと直接リンクを生成する方法を知っていますか?

ありがとうございます。


最初のテストケースは、Googleの2つの以上のアカウントへのログイン。下の画像にあるように、私は3つのアカウントにログインしています。最初のもの(上)が私の主要なアカウントです。他のアカウントはセカンダリアカウントです。

Google Accounts

私の主なGmailへの直接リンクは次のとおりです。私の第二のアカウントへhttps://mail.google.com/mail/U/0/#受信トレイ/

直接リンクは次のとおりです。 https://mail.google.com/mail/U/1/#受信トレイ/

そして、私の第3の最後のアカウントのリンクは次のとおりです。 https://mail.google.com/mail/U/2/#受信ボックス/

これらの数値は、アカウントにログインした順番によって異なります。ログインした最初のアカウントは常にプライマリアカウントになります。

したがって、メッセージIDの例として2527bfcqed7d54c1を取ることができます。残っているのはメッセージへの直接リンクを生成することだけですが、問題は受信トレイの番号ではなく、リンクされている電子メールだけです(例:/u/2)。

メッセージが受信トレイ/u/2に存在する場合、直接リンクを取得できません。 APIは受信ボックス番号を返さないため、https://mail.google.com/mail/#inbox/2527bfcqed7d54c1は常にプライマリ受信トレイ/u/0にリダイレクトされます。

+0

:あなたはしかし、同様の効果を得るために、メッセージのユニークなMessage-IDヘッダーを検索することができます/ questions/29415495/get-direct-link-to-gmail-message-via-google-api) – Teyam

+0

私は試しましたが、うまくいかなかった。最初の受信トレイにリダイレクトされ、メッセージが存在しないことがわかります。カレンダーイベントにリンクするときも同じ問題があります。 – Tijme

答えて

10

あなたが使用したいメールアドレスの値をクエリパラメータauthuserを供給することができます:

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

これは、通常のGmailクライアントのために動作しますが、それはID以来、Googleの受信トレイには機能しません。スレッドの一部はURLの一部ではありません。 [GoogleのAPIを介して、Gmailのメッセージへの直接リンクを取得](http://stackoverflow.com - このSOポストに与えられた解決策を試してみてください

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

本当ですか?それは複数ログインで動作しますか? –

+0

@EricDeFriezはい。それは私が常にログインしたアカウントから独立したリンクを作った方法です。 – Tholle

+0

@Tholleそれは働いているようです。ドキュメンテーションへのリンクを提供できますか、それとも文書化されていませんか? – Tijme

関連する問題