1
/
5

【図多め】APIを使ってGoogleサービスを操る


GoogleAPIとは、Googleが提供するのサービスやプラットフォームを扱えるAPIです。 これらのAPIを使いこなすことで、Googleのサービスを自身のアプリケーションへ組み込み、様々なことを実現できます。

ここでは、Gmailを扱うAPIと、GoogleDriveを扱うAPIPHPアプリケーションから利用する例に紹介します。 (内容は2018年7月現在の情報です。)

この記事の内容

今回は、GoogleAPIのガイドに記載されているQuickstartを用いて、OAuth認証を行いAPIを実行します。*1

概要は以下の図のような感じです。


この記事では、「その1:プロジェクトの用意」で、Google Cloud プラットフォームにプロジェクトを用意し、 「その2:認証情報の作成」にて、OAuthに必要な認証情報ファイルの作成、 「その3:APIを叩く」でサンプルプログラムを用いて上記図の①~④に示す認証処理とAPIの実行を行います。

少し内容が長くなってしまったので、目次を見て必要な情報のところをご覧ください。

(余談ですが、恥ずかしながら、この記事を書くまで、私は「OAuth」を、他のシステムで認証するから「Other Auth」の略だと思っていました。正しくは「Open Auth」ですね。。。)

その0:Googleアカウントの用意

言わずもがな、APIを利用して操作するGoogleアカウントが必要です。 詳しい方法は割愛。作成したら、ログインしてください。

その1:プロジェクトの用意

APIを利用するため、Googleアカウントに紐づいたプロジェクトを作成する必要があります。

プロジェクトを作成する

使用するGoogleアカウントにログインしたら、Google Cloud プラットフォームにアクセスしましょう。

左上のハンバーガーメニューから、「IAMと管理 > リソースの管理」を選択します。


リソースの管理画面に、「プロジェクトを作成」リンクがあるので、クリックします。


その後の画面でプロジェクト名を入力し、「作成」します。 これでプロジェクトが作成できました。 (少し画面表示に時間がかかることがあります。)


プロジェクトで使用するAPIを指定する

次に、作成したプロジェクトで使用するAPIを指定します。 Google Cloudプラットフォームの画面上部から、先ほど作成したプロジェクトを選択した状態で、「APIとサービス > ライブラリ」を選択します。

ここでは、使用することができるGoogleAPIライブラリを選ぶことがあります。 どのAPIも面白そうですが、とりあえず今回は「Gmail」と「GoogleDrive」を利用するので、まず、「GmailAPI」を探し、「有効にする」を選択します。 これで、このプロジェクトでGmailAPIを有効にすることができます。

なお、この画面からはGmailAPIのガイドやリファレンスなどのドキュメントを閲覧することができます。

同様に、「Google DriveAPI」を、APIライブラリから探し、有効にします。

これで、使いたいAPIを有効にしたプロジェクトが作成できます。


なお、この画面からはGmailAPIのガイドやリファレンスなどのドキュメントを閲覧することができます。

同様に、「Google DriveAPI」を、APIライブラリから探し、有効にします。

これで、使いたいAPIを有効にしたプロジェクトが作成できます。

その2:認証情報の作成

さて、プロジェクトは準備できましたが、APIを叩くにあたり、認証が必要です。 次は認証情報を作成し、自分が作成するアプリケーションからのリクエストのみを受け付けるようにしましょう。

Google Cloudプラットフォームの画面上部から、先ほど作成したプロジェクトを選択した状態で、「APIとサービス > 認証情報」を選択します。


その後、「認証情報を作成」から「OAuth クライアント ID の作成」をクリックします。

OAuth 2.0 クライアント ID を作成する

OAuthの設定をするにあたり、まずはAPIを叩くアプリケーションの種類を指定します。

今回は、「その他」を選んでください。APIガイドに載っている「Quickstart」を使うためには、「その他」を選ぶ必要があります。 選択したら、クライアントの識別名を入力し、作成します。


OAuth 2.0 同意画面を設定する

次に、 OAuth 2.0 同意画面の設定を行うため、 「認証情報を作成」から「OAuth 2.0 同意画面」を選択します。 OAuth 2.0 同意画面とは、設定しているAPIによってユーザのデータへアクセスするときに、表示される画面で、データへのアクセス前に認証を行う画面のことです。

この画面で認証を行うため、メールアドレスと、表示する任意のアプリ名を指定します。 ここで指定したアプリ名は、以下のように認証画面にて表示されます。


設定出来たら「次へ」ボタンを押下します。

これで認証情報の作成が完了しました。

ハンバーガーメニューから、「APIとサービス > 認証情報」を選択すると、認証情報が作成できていることが確認できます。

その3:APIを叩く

次に、アプリケーションからGoogleAPIの認証を行い実際にAPIを実行します。

ここからはGmailAPIの公式ドキュメントを参考にしながら進めましょう。 「APIとサービス > ライブラリ」から「GmailAPI」を探し出し、「チュートリアルとドキュメント」の「Learn more」をクリックし、公式ドキュメントを表示します。

表示したら、「ガイド」タブの「Quickstarts」から、使用する言語を選択します。 今回はPHPで説明します。他の言語でAPIを扱いたい場合は、対象の言語を選択して、頑張ってください。(←丸投げ)


PHPのQuickstartでは、Step1~Step4の手順が紹介されていますが、Step1のAPIを有効化する手順はもう完了しているので、Step2から行います。

Google Client Libraryのインストール

QuickstartのStep2です。GoogleAPIを使用するために、Google Client Libraryをインストールする必要があります。 PHPの場合、composerを用いることで簡単にインストールできます。

認証情報をダウンロード

先ほど作成したOAuth2.0クライアントの認証情報が記載されたJSONファイルをダウンロードします。 Google Cloud プラットフォームのメニューから、「APIとサービス > 認証情報」を選択し、先ほど作成したOAuth2.0クライアントのダウンロードアイコンをクリックすることで、ダウンロードできます。


ダウンロードしたクライアントの認証情報ファイルは、次のサンプルプログラム実行で使います。

サンプルプログラムの作成

QuickstartのStep3です。quickstart.php
という名前で以下のコードを保存します。

上記コードでは、大きく分けて、以下の処理を行っており、一部APIの実行目的によって変更する必要があります。

  • APIクライアントオブジェクトの取得
    • クライアント証明書の取得と更新
    • APIクライアントオブジェクトの作成
  • 利用するAPIのサービスオブジェクト作成

APIクライアントオブジェクトの取得

APIを実行するクライアントのオブジェクトを作成します。 作成時には、先ほどダウンロードした、クライアントの認証情報を利用して、クライアント証明書を取得し、ファイルに保存します。 クライアント証明書には、特別な設定をしない限り利用期限があり、利用期限が過ぎていた場合は更新されます。

また、クライアントオブジェクトを作成する際に、「スコープ」を指定します。 「スコープ」は、そのクライアントが、APIを用いて「どこまでの操作が実行できるか」を指定するものです。(コード内コメント※1) スコープはAPIを使って何を実行したいのかによるため、場合によって書き換える必要があります。 スコープは各サービスオブジェクトの定数を指定するか、APIガイドにあるURIを指定することで、設定できます。

たとえば、Gmailでメールを送信したい場合は以下の通りに書き換えます。

利用するAPIのサービスオブジェクト作成

取得したクライアントオブジェクトを利用して、各サービスのAPIを扱うためのサービスオブジェクトを作成します。 ここは各サービスごとに異なるため、ドキュメントをご覧ください。 作成したサービスオブジェクトを使うことで、そのサービスのAPIリクエストが可能になります。

サンプルプログラムの実行

作成したサンプルプログラムをコマンドラインから実行します。

実行すると、URLが表示され、入力待ちになりますので、表示されたURLへブラウザからアクセスしてください。 アクセスすると、認証情報の作成時に設定したOAuth 2.0の同意画面が表示されますので、画面に従って実行を許可してください。アクセストークンが表示されるので、コマンドラインにコピペすることで、クライアント証明書を取得することができます。

次回実行時からは、この作業で取得したクライアント証明書をもとに認証を行うため、同意画面での実行許可は不要になります。

また、サンプルプログラムはGmailAPIガイドから取得しましたが、この認証で今回作ったプロジェクトへの認証ができるので、他APIも利用可能になります。

これでAPIを実行する準備はできました。 あとは各サービスオブジェクトのメソッドを使ってGmailを送ったり、Google Driveを操作したりできます。

例として、Gmailでメールを送るときのコードを記載します。*2

*1:https://developers.google.com/gmail/api/quickstart/php?hl=ja

*2:https://sepg.biz/2018/03/23/post-564/

株式会社ラクスでは一緒に働く仲間を募集しています
3 いいね!
3 いいね!
今週のランキング
株式会社ラクスからお誘い
この話題に共感したら、メンバーと話してみませんか?