Gmail API は Thread
リソースを使用して、メールの返信と元のメールを一つのスレッドにグループ化します。これにより、会話内のすべてのメッセージを順番に取得できるため、メッセージのコンテキストを把握したり、検索結果を絞り込んだりしやすくなります。
メッセージと同様に、スレッドにもラベルを適用できます。ただし、メッセージとは異なり、スレッドは作成できず、削除のみ可能です。ただし、スレッドにメッセージを挿入することはできます。
目次
スレッドの取得
スレッドを使用すると、会話内のメッセージを順番に簡単に取得できます。スレッドのセットをリストすることで、会話ごとにメッセージをグループ化し、追加のコンテキストを提供できます。スレッドのリストを取得するには 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
ヘッダーが一致している必要があります。
下書きの作成またはメッセージの送信の例をご覧ください。どちらの場合も、スレッド ID とペアになった threadId
キーをメッセージのメタデータ(message
オブジェクト)に追加するだけです。