Gmail API 概要

Gmail API は、Gmail のメールボックスにアクセスしてメールを送信するために使用できる RESTful API です。 ほとんどの Web アプリケーション (モバイル アプリケーションを含む) では、Gmail API はユーザーの Gmail データに正規にアクセスするための最良の選択です。

Gmail API は、ThreadsMessagesLabelsDraftsHistory および Settings へのナチュラル インターフェイスにより、ユーザーの受信箱に柔軟かつ RESTful にアクセスできます。選択した現代言語から、あなたのアプリは API を使用して、次のような Gmail 機能を追加できます。

  • Gmail からメッセージを読み取る
  • 電子メール メッセージを送信する
  • メッセージやスレッドに適用するラベルを変更する
  • 特定のメッセージやスレッドを検索する
  • 自動ラベル付けのためのフィルタを作成する
  • Gmail からメッセージを読み取る
  • Gmail にメッセージを送信する
  • Gmail からメッセージを送信するなど、Gmail の機能を追加できます。

Gmail API を使用するために必要なのは、選択した言語のクライアント ライブラリと、Gmail ユーザーとして認証できるアプリケーションだけです。

Typical use cases

Gmail API は、さまざまな異なるアプリケーションで使用することができます。

  • 読み取り専用のメール抽出、インデックス作成、およびバックアップ
  • ラベル管理(ラベルの追加/削除)
  • 自動またはプログラムによるメッセージ送信
  • 他のプロバイダーからのメールアカウントの移行
  • ドメイン内のユーザーの標準メール署名の設定

どうすればもっとわかるのですか?

Gmail アプリの構築を開始するには、このドキュメントを使用します。

  • クライアント ライブラリは、複数の言語でダウンロード可能で、API リクエストを簡単に作成できます。
  • API リファレンスでは、Gmail API のすべてのリソースとメソッドの詳細を説明します。

API 概要

Gmail API は Web サービスです。 API のリソースとメソッドの詳細については、「GmailAPI リファレンス」を参照してください。

主要なリソース タイプ

Gmail API は、いくつかのリソース タイプを提供します。

  • Messages
  • Labels
  • Drafts
  • History
  • Threads
  • Settings

メッセージとラベルはメールボックスの基本ユニットです。 Drafts, history, andthreads はすべて追加のメタデータを持つ 1 つ以上のメッセージを含みます。

Messages are immutable: それらは作成と削除のみ可能です。

ラベルは、メッセージおよびスレッドを分類し、整理する主要な手段として機能します。 1 つのメッセージに複数のラベルが適用されることがあり、1 つのラベルが複数のメッセージまたはスレッドに適用されることがあります。 ラベルには、systemuserの2種類があります。 INBOXTRASHSPAMなどのシステム・ラベルは内部で作成され、作成、削除、変更はできません。 ただし、INBOXのようなシステムラベルは、メッセージやスレッドに適用したり削除したりすることができます。

Drafts は未送信のメッセージを表します。 ドラフトを送信すると、自動的にドラフトが削除され、SENT システム・ラベルを持つメッセージが作成されます。

ヒストリは、最近変更されたメッセージを時系列に集めたものです。ヒストリは、クライアントを同期させる軽量な方法として意図されていますが、通常は過去 30 日間の変更記録のみが含まれています。 791>

スレッドは、会話を表すメッセージのコレクションです。 メッセージと同様に、スレッドにもラベルが適用されることがあります。 しかし、メッセージとは異なり、スレッドは作成することはできず、削除することだけが可能です。

設定は、Gmail の機能がユーザーに対してどのように動作するかを制御します。 POP および IMAP アクセス、メール転送、フィルター、休暇の自動応答、エイリアスとして送信、署名、委任、および言語について設定できます。

Auth and the Gmail API

他の Google REST API と同様、Gmail API は認証および承認を処理するために OAuth 2.0 を使用します。 アプリは 1 つ以上のスコープ、つまりアクセスする必要のあるリソースを特定する文字列を指定します。 これらのスコープとトークンのセットは、 ユーザーのリソースへのアクセスを保護するために使用されます。スコープは、単一のリソースまたはリソースのグループに対する特定のアクセス形式を表します。

  • Gmail からメッセージを読む (https://www.googleapis.com/auth/gmail.readonly)
  • Change labels applied to a thread or message(https://www.googleapis.com/auth/gmail.modify)
  • Send a message on behalf of a user(https://www.googleapis.com/auth/gmail.compose)

Web サービスの認証コールは明確にコーディングできますが、通常は多くのプログラミング言語で使用できる Google API クライアント ライブラリを用いて簡単に行う必要があります。

Gmail API での認証の使用については、「Gmail でアプリを認証する」を参照してください。

スコープ

Gmail API は、必要なレベルのアクセスのみを許可する、いくつかの細かい認証スコープをサポートします。

Example use case

次の使用例を考えてみましょう: 現在認証されているユーザーのスレッドのページを印刷する (たとえば、最近のメッセージ パネルで)… これを実現するには、アプリは次の手順を実行します。

  • API メソッドを呼び出す。 GET https://www.googleapis.com/gmail/v1/users/<userId>/threads
  • アプリケーションで返されたスレッドのリストを処理する。
  • 実際のサンプル コードについては、選択した言語のクイックスタートを参照してください。 791>

    Sending Gmail messages

    Email は、メッセージの raw プロパティ内の base64url エンコードされた文字列として送信されます。 メッセージを作成して送信するには:

    1. 使用しているプログラミング言語によって異なるかもしれませんが、何らかの便利な方法で電子メールのコンテンツを作成します。
    2. 新しい messageresource を作成し、その raw プロパティを先ほど作成した base64url 文字列に設定します。
    3. messages.send を呼び出してメッセージを送信します。

    受信したメールのフェッチ

    メールの ID が与えられると、Users.messagesリソースの get メソッドを使用して内容をフェッチすることができます。FULL (デフォルト) フォーマットは payload フィールドに解析されたメッセージ全体を返し、MINIMAL フォーマットは識別子やラベルなどのメタデータのみを返し、RAW フォーマットは raw 属性に base64url エンコードされた文字列としてデータを返します。 start_history_id プロパティでは、どの時点からの変更を返すかを設定できます。

    ラベル管理

    スレッドに適用されたラベルは、そのスレッド内のすべてのメッセージに適用されます。 messageListVisibilityプロパティは、このラベルを持つメッセージがメッセージリストに表示されるかどうかを決定するために使用されます。 同様に、labelListVisibility プロパティは、ラベルがラベルリストに表示されるかどうかを決定するために使用されます。 メッセージとスレッドに適用されるラベルを変更するには、それぞれmessages.modifyまたはthreads.modifyメソッドを使用します。

    Leave a Reply