Gmail API PHP の手引き1

スポンサードリンク

Gmail APIの概要

googleが提供しているgmail用APIの主な使い方。

実際に使用する際にはgoogleの管理コンソールで設定したりクライアントライブラリを取得したりといろいろお膳立てがあるが、ここでは主にAPIの使い方に重きをおいて書く。

グーグルのAPIを使用する際に基本となるサービスクラスがあるが、Gmailの場合はそのサービスクラスがGoogle_Service_Gmailクラスになる。

このサービスクラスにクライアント情報(認証用キーファイル、ユーザーアカウントなど)を付随させつつ、しかるべきメソッドにアクセスして目的を果たすというようなイメージ

google-api-php-clientのインストール

composerを使ってgoogle-api-php-clientをインストールする。

参照 google-api-php-clientのインストール

クライアント情報(オブジェクト)の生成

実際にGmail APIを使用する場合、まずはじめにクライアント情報となるオブジェクトを生成し、必要な情報をセットする。

$client = new Google_Client();
$client->setApplicationName([アプリケーション名]); //たぶん何でもよい
$client->setAuthConfig([認証用キーファイル]); //JSONファイル
$client->setScopes([スコープ]); //グーグルの管理コンソールで設定する値
$client->setSubject([ユーザーアカウント]); //メールボックスにアクセスするユーザーのメールアカウント

このオブジェクト($client)を、以下で説明するGoogle_Service_Gmailクラスのオブジェクトを生成する際の引数としてセットする。

Google_Service_Gmailクラス

gmailのAPIを使用する際にメインとなるサービスクラス

使い方としてはまずGoogle_Service_Gmailクラスのオブジェクトを生成し、そのオブジェクトのメンバ変数がもつメソッドを呼び出すことによりメッセージの取得や送信などさまざまな処理をおこなう。

//クラスのオブジェクトを生成する
$service = new Google_Service_Gmail($client)
//メンバ変数のメソッドを呼び出す
$messages = $service->user_messages->get(userId, $id, optParams)

メンバ変数(プロパティ)

$users
$users_drafts
$users_history
$users_labels
$users_messages
$users_messages_attachments
$users_settings
$users_settings_filters
$users_settings_forwardingAddresses
$users_settings_sendAs
$users_settings_sendAs_smimeInfo
$users_threads

リンクをクリックするとそのメンバ変数がもつクラスとそのメソッドを参照できます。

これで基本的なメソッドの使用方法がご理解いただけたかと。しかしメソッドを使ってメッセージ(オブジェクト)を取得した場合、その内部構造はどうなるのか?

それが以下で説明するGoogle_Service_Gmail_Messageクラス

Google_Service_Gmail_Messageクラス

gmailメッセージ本体の型(クラス)

例えばメッセージ取得メソッドによって取得したオブジェクトの型がこれに相当する。

//@返り値 Google_Service_Gmail_Message $message
$message = $service->users_messages->get($userId, $messageId);

そのオブジェクトからさらにメールタイトルや本文内容を取得したい場合はゲッターメソッド(get○○)を使用する。

また、メッセージを送信する場合はこのクラスのオブジェクトを生成して、セッターメソッド(set○○)で必要な値をセットした後、メッセージ送信メソッドで送信する。

//オブジェクトを生成
$message = new Google_Service_Gmail_Message();
//必要な値をセット
$message->setRaw($raw);
//メソッド呼び出し
$service->user_messages->send($userId, $message);


Google_Service_Gmail_Messageクラスの内部構造(プロパティ)は以下のようになっている。

{
  "id": string,
  "threadId": string,
  "labelIds": [
    string
  ],
  "snippet": string,
  "historyId": unsigned long,
  "internalDate": long,
  "payload": {
    "partId": string,
    "mimeType": string,
    "filename": string,
    "headers": [
      {
        "name": string,
        "value": string
      }
    ],
    "body": users.messages.attachments Resource,
    "parts": [
      (MessagePart)
    ]
  },
  "sizeEstimate": integer,
  "raw": bytes
}

各プロパティに対して以下のようなゲッター、セッターが存在する。

ゲッター・セッター一覧

setHistoryId( mixed $historyId )
getHistoryId()
setId( mixed $id )
getId()
setInternalDate( mixed $internalDate )
getInternalDate()
setLabelIds( mixed $labelIds )
getLabelIds()
setPayload( Google_Service_Gmail_MessagePart $payload )
getPayload()
setRaw( mixed $raw )
getRaw()
setSizeEstimate( mixed $sizeEstimate )
getSizeEstimate()
setSnippet( mixed $snippet )
getSnippet()
setThreadId( mixed $threadId )
getThreadId()

ソースコードサンプル

以上がGmail APIを使用する際のおおまかな説明

具体的なサンプルを記載しましたので上記を踏まえた上でご覧いただければと

メール取得方法

メール送信方法

署名取得方法

Gmail API Client PHP の手引き2

スポンサードリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする