PHPのコマンドラインアプリでGoogle Driveに繋いでファイル一覧を取得する

自分用の備忘録の意味も込めてPHPで必要ソフトのインストールからファイル一覧の取得までを書きました。

ここでやるのは…

・サーバーのコマンドライン環境で認証ページへのリンクを発行

・発行したリンクに遷移し、Webブラウザでユーザー認証する。

・認証後に発行されたコードをコマンドラインに入力し、トークンを取得。

・トークンを使用して、認証したユーザがGoogle Driveにアップロードしたファイル一覧を表示する。

です。

環境

OSCentOS7
PHP7.2.13
(※APIクライアントはPHPバージョン5.4以上で動作します。)

API使用に最低必要なもの

・PHP実行環境

・API Client Library for PHP (Beta) 

・資格情報ファイル(credentials.json)

APIライブラリでGoogle DriveのAPIを検索

Google APIsのページに移動してGoogle Drive APIを検索します。

https://console.developers.google.com/apis/library

Google Drive APIを押下し、有効化します。

有効化完了。

Composerのインストール

PHPクライアントはパッケージ管理ツールのComposerを使用します。

続いてcomposer.jsonの作成です。
クライアントを使用する作業フォルダを作成。

作業フォルダへ移動したら 以下コマンドを実行。

今回は全部Enterで保存します。

composer.jsonに以下を追記して保存します。

PHPクライアントのインストール

Google Driveに接続するためのクライアントをインストールします。

依存パッケージも同時に自動インストールされます。

資格情報ファイル作成

APIの認証に使用するcredentials.jsonファイルを作成します。

以下のページに移動し「ENABLE THE DRIVE API」ボタンを押下。

https://developers.google.com/drive/api/v3/quickstart/php

プロジェクトを選択、もしくは新規作成したらNEXTを押します。

「DOWNLOAD CLIENT CONFIGURATION」を押して credentials.jsonをダウンロードし、クライアントの実行フォルダに配置します。

サンプルコードの配置

「Step 3: Set up the sample」にあるサンプルコードをquickstart.phpとして保存し、配置します。

ここまでで実行フォルダが以下のようになっていると思います。

いよいよ実行

quickstart.phpを実行します。

実行すると、コマンドラインに認証ページへのリンクが表示されるのでリンク先へ移動し、認証します。

許可を押下すると、コードが表示されるので、そのコードをコマンドラインの

「Enter verification code:」の後に張り付けEnter。

すると、自分がGoogle Driveにアップロードしたファイル一覧が表示されます。

また、認証時にそのトークンを保存するtoken.jsonが作成されます。

有効期限が切れるまでは、毎回コードを求められません。