【GoogleDriveAPI】サーバーからGoogleDriveのファイルを取得する方法

PHP

前回は 自端末のPython から GoogleDriveAPI を使用して GoogleDriveにアクセスする方法 をご紹介しました。

今回はレンタルサーバーから PHP で GoogleDriveAPI を使用して GoogleDrive のファイルを取得する方法をご紹介します。

1.GoogleDriveAPI の サービスアカウントキー を取得

以下の記事を参考に プロジェクトの作成、GoogleDriveAPI の有効化、サービスアカウントの鍵を取得しましょう。正直なところ、これが一番大変なところですが、以下の記事では ひとつひとつ 画像付きで解説していますので、最後まで行けると思います。

2.サービスアカウントキー(JSON)をサーバーにアップロード

先ほど取得した サービスアカウントの鍵 を FTPソフト でサーバーにアップロードします。

この鍵は 絶対に public_htmlより上の階層 にアップロードしてください。もし 外部公開しているディレクトリ に アップロード すると 鍵が第三者に取得される恐れ があります。

3.ライブラリをインストール

google/apiclient ライブラリのインストール

実行したいプログラム の ディレクトリに移動 し、以下のコマンドを実行します。

もしサーバーに composer が入っていない場合は 以下の方法で composer をサーバーにインストールしましょう。

composer をインストールする方法

もしサーバーに composer が入っていない場合は次の記事を参考に、まずは composer をサーバーにインストールしましょう!

Composerをインストールする方法(Windows、macOS、Linux別)
お好きな開発環境にComposerをインストールして、PHPアプリケーションのビルドプロセスを自動化する方法を詳しくご説明します。

4.サンプルプログラム

使い方

サービスアカウントの鍵を指定する

このプログラムは /jitantech.com/public_html/youtube-project/プログラム名.php で実行しています。サービスアカウントの鍵は /jitantech-.json に置いています。ですので プログラムから見ると 4階層上 に鍵がある状態です。

フォルダIDを指定する

・GoogleDrive のフォルダIDの調べ方

 フォルダを開く ⇒ URL の最後の部分 がフォルダIDです。

・q って何?

 q はフォルダID {$folderId} の中にある ファイルを検索 するGoogleAPIのクエリです。

ファイルの内容を取得する

'alt' => 'media' って何?

 Google Drive内の特定のファイルの内容を直接ダウンロード するのに使われます。

$response->getBody()->getContents() は何をしている?

 Google Drive APIから取得した ファイルの中身(テキストデータ)$content に格納します。

echo nl2br($content) は何をしている?

 $content の内容を表示する際に、改行コード \n<br> に変換し、Webページ上で改行されるようにします。

実行結果

GoogleDrive に保存されている テキストファイルの内容が ブラウザに表示されました!!

おわりに

今回は Xserver から GoogleDrive にアクセスしてファイルの内容を取得する方法をご紹介しました。

おそらく、サービスアカウントの鍵を入手するのが一番大変だと思います。

しかし、サービスアカウントは非常に便利なので、この機会に取得して、いろいろなプログラムで使っていきましょう!

ではまた。

コメント