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