Google Drive APIのサンプルを確認してみる

API
スポンサーリンク

この記事は以下の記事の補足記事です。まだGoogle APIを実行するための環境が整っていない人は、以下の記事も参考にしてください。

Google DriveのAPIを使ってみる(初心者向け)
Googleには様々な機能がありますが、それにアクセスするAPIが提供されています。ここでは、GoogleドライブにアクセスするGoogle Drive APIをWeb画面から実行する方法について、紹介しています。 そもそも、Google ...

前の記事で、Google Drive APIを使用するための設定を行いました。以下では、Quickstartのソースを入手する方法と、どのような処理を行っているかみてみたいと思います。

Quickstartのサンプルソースを入手

まず、GoogleのGitHubから、サンプルソースをクローン(複製)します。Quickstartのソースをそのままコピーしても動作確認可能ですが、ここではGitHubからサンプルソースを入手してみます。

Googleのドキュメントのページから、「GitHub」のページを開きます。

今回は、一番簡単なブラウザのサンプルソースを取得してみます。「googleworkspace/browser-samples」のページを開き、「Clone or download」ボタンからURIをコピーするかソースをダウンロードします。クローンだけなら、サインインしなくても大丈夫です。

今回は、Google Driveのサンプルソースを動かします。以下のソースを確認します。
\browser-samples\drive\quickstart\index.html
重要なところだけ、抜粋しています。すべてのソースの確認は、実際のソースで確認してください。
    <script type="text/javascript">
      // Client ID and API key from the Developer Console
      var CLIENT_ID = '<YOUR_CLIENT_ID>';    // ここに作成したクライアントIDを設定
      var API_KEY = '<YOUR_API_KEY>';           // ここに作成したAPIキーを設定

      // Array of API discovery doc URLs for APIs used by the quickstart
      // ① RESTAPIのdocs
      var DISCOVERY_DOCS = ["https://www.googleapis.com/discovery/v1/apis/drive/v3/rest"];  

      // Authorization scopes required by the API; multiple scopes can be
      // included, separated by spaces.
      // ②スコープの設定(読み取り専用)
      var SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly';   

      var authorizeButton = document.getElementById('authorize_button');
      var signoutButton = document.getElementById('signout_button');

      /**
       *  On load, called to load the auth2 library and API client library.
       */
      function handleClientLoad() {
        gapi.load('client:auth2', initClient);  // ③googleapiのスクリプトで証明書をロード
      }

      /**
       *  Initializes the API client library and sets up sign-in state
       *  listeners.
       */
      function initClient() {   // ④初期化処理
        gapi.client.init({
          apiKey: API_KEY,
          clientId: CLIENT_ID,
          discoveryDocs: DISCOVERY_DOCS,
          scope: SCOPES
        }).then(function () { // コールバック関数
          // Listen for sign-in state changes.
          gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);

          // Handle the initial sign-in state.
          // 省略
        }, function(error) { // エラー処理
          // 省略
        });
      }

      /**
       * Print files.
       */
      function listFiles() { // ⑤Googleドライブのファイルリストを取得
        gapi.client.drive.files.list({
          'pageSize': 10,
          'fields': "nextPageToken, files(id, name)"
        }).then(function(response) {
          appendPre('Files:');
          var files = response.result.files;
          if (files && files.length > 0) {
            for (var i = 0; i < files.length; i++) {
              var file = files[i];
              appendPre(file.name + ' (' + file.id + ')');
            }
          } else {
            appendPre('No files found.');
          }
        });
      }

    </script>
  
  // ⑥google api用のscript
    <script async defer src="https://apis.google.com/js/api.js"
      onload="this.onload=function(){};handleClientLoad()"
      onreadystatechange="if (this.readyState === 'complete') this.onload()">
    </script>

上のソースの日本語コメントはわたしが追加したものです。

①apiのDocsです。このURIの内容を確認することで、どのようなメソッドが使えるかを確認することができます。

②スコープの設定です。設定可能な値は、①のDocsで確認可能です。

③GoogleAPIにアクセスするための認証情報を読み込んでいます。

④apiを初期化します。

⑤実際にGoogleドライブのファイルリストを読み込みます。

⑥google apiを使用するための便利なスクリプトが用意されています。このスクリプトを読み込んで処理前の初期化処理やファイルリストの取得等のAPI操作を行えます。

まとめ

Google ドライブ APIのソースについてでした。ここでは一番簡単なソースを見てみましたが、他にもphpやpythonでのサンプルソースもGitHubから入手可能です。自分の興味のあるソースを取得して、いろいろ試してみてはいかがでしょうか。

コメント