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

2019年2月17日

自分用の備忘録の意味も込めて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が作成されます。

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