Gmail API は、Thread
リソースを使用して、元のメッセージと合わせてメールの返信を 1 つの会話またはスレッドにグループ化します。これにより、会話内のすべてのメッセージを順番に取得できるため、メッセージのコンテキストを把握したり、検索結果を絞り込んだりしやすくなります。
メッセージと同様に、スレッドにもラベルが適用される場合があります。ただし、メッセージとは異なり、スレッドは作成できず、削除のみ可能です。ただし、スレッドにはメッセージを挿入できます。
目次
スレッドを取得する
スレッドを使用すると、会話内のメッセージを順に簡単に取得できます。
スレッドのセットを一覧表示すると、会話ごとにメッセージをグループ化し、追加のコンテキストを提供できます。スレッドのリストを取得するには、threads.list
メソッドを使用します。また、特定のスレッドを取得するには、threads.get
を使用します。Message
リソースと同じクエリ パラメータを使用して、スレッドをフィルタリングすることもできます。スレッド内のいずれかのメッセージがクエリと一致すると、そのスレッドが結果で返されます。
以下のコードサンプルは、受信トレイに最も通信量の多いスレッドを表示するサンプルでは、両方のメソッドを使用する方法を示しています。threads.list
メソッドはすべてのスレッド ID を取得し、threads.get
は各スレッドのすべてのメッセージを取得します。返信が 3 件以上の場合は、Subject
行を抽出し、空でない返信とスレッド内のメッセージ数を表示します。このコードサンプルは、対応する DevByte の動画でも紹介されています。
Python
下書きとメッセージをスレッドに追加する
別のメールへの返信や会話の一部であるメッセージを送信または移行する場合は、アプリケーションでそのメッセージを関連スレッドに追加する必要があります。これにより、会話に参加している Gmail ユーザーがメッセージの文脈を把握しやすくなります。
下書きは、下書きメッセージの作成、更新、送信の過程でスレッドに追加できます。メッセージの挿入または送信の一環として、スレッドにメッセージを追加することもできます。
スレッドに参加するには、メッセージまたは下書きが次の条件を満たしている必要があります。
- リクエストされた
threadId
は、リクエストと一緒に指定するMessage
またはDraft.Message
で指定する必要があります。 References
ヘッダーとIn-Reply-To
ヘッダーは、RFC 2822 規格に従って設定する必要があります。Subject
ヘッダーは一致する必要があります。
下書きの作成またはメッセージの送信の例をご覧ください。どちらの場合も、threadId
キーとスレッド ID のペアをメッセージのメタデータ(message
オブジェクト)に追加するだけです。