web-dev-qa-db-ja.com

GmailメッセージIDまたはThreadIdはどのように新しいGmailUIにマッピングされますか?

編集:以下の最初のコメントに対処し、わかりやすくするために、これはコードの質問ではありません。問題は単純です:

Gmail APIによって作成されたドラフトメッセージを表示するには、新しいGmail UIのURIクエリ文字列に何を入力しますか?

これは実際にはコードの質問ではありませんが、Gmail APIの質問にGoogleが推奨するプラットフォームであるため、StackOverflowについて質問しています。

-

新しいGmailUIでドラフトメッセージを表示すると、URIは次のようになります。

https://mail.google.com/mail/u/1/?zx=iij9apqgzdf4#drafts?compose=jrjtXSqXwlFGnSGCQgDCdnHGVFdlpFMgzsCNgpQstQLxdLCMkjKstBmWZkCmjhWTQnpsZCJF

GmailAPIを介して作成されたメッセージのIDまたはThreadIdからそのようなリンクを作成する方法がわかりません。

以前は、これを行うことができました:

https://mail.google.com/mail/u/1/?zx=ov61dxfbrcga#drafts?compose=1631caae9dbb074d

ここで、「compose」の値はIdです。

新しいUIで同じことをどのように達成できますか?

14
Chris Wood

@ frank-szilinskiに感謝します-彼は、古いフォーマットが現在翻訳されていることを指摘しました。つまりこれは再び機能します:

https://mail.google.com/mail/ca/u/1/#drafts/1661237c4db71ace

ただし、Gmailタブがまだ開いていない場合は機能しないようです。

4
Chris Wood

私は同じ問題に直面していて、この問題である程度の成功を収めています。また、まだ解決できない問題もいくつかあります。

朗報:新しいcomposeパラメータ形式は、ある種の「base40」エンコーディングです。 Gmailのソースで制限されたアルファベット文字列を検索し、このエンコード/デコードを実行するコードを見つけて難読化を解除しました: https://Gist.github.com/danrouse/52212f0de2fbfe33cfc56583f20ccb74

このコードには、Gmail形式のクエリパラメータで機能するencodeおよびdecode関数が含まれています。

悪いニュース:下書きメールを開くためにエンコードしている値は、GmailAPIを使用して利用できないようです。具体的には、次のようになります。thread-f:NEW_THREAD_ID+msg-a:DRAFT_ID-ドラフトIDは以前と同じですが、スレッドIDはGmailAPIが返すIDのいずれとも一致していないようです。

興味深いことに、Gmail UIで件名の行を調べると、古い形式と新しい形式のIDの両方を含むデータセット属性がありますが、プログラムで新しい形式を取得する方法はまだ不明です。

10
kremonte

@kremonteGistと@ chris-woodのコメントに基づいて、open-the-draft-inside-gmailURLを正しく作成するRails gemを作成しました。

ここにあります- https://github.com/GoodMeasuresLLC/gmail_compose_encoder

これは、「コードで下書きが作成され(もちろん、テキストが事前に入力されています)、ユーザーが「送信」をクリックする前に下書きを確認できるように、下書きを作成モードで開きたい」というユースケース用です。

3
Rob