Google Photos を学ぶ(1)

<< 戻る   トップ >>

albumls.list の JavaScrip サンプルを動かしてみた。WebPage を作って、サンプルの JavaScript コードと HTML を流し込む。Google API 認証情報で取得した Client ID と API Key をプログラム中に設定して、locahost:8080 サーバで動かす(ローカルファイル file://では動かない)と、「このアプリは確認されていません」という警告が出たりするものの、なんとか動いているらしい。これを手がかりになんとか動かしていきたい。ちなみに、「開発中のアプリ:アプリが試験的またはテストビルドの場合、公開することを決定しない限り、検証を行う必要はありません。」とのこと。実際に動かす時にはしかるべき手続きを踏む必要があるようだ。

JavaScript そのものは極めて短い。まず、ページロード時の動作。

  1. JavaScript ライブラリの組み込み <javascript> タグを使って https://apis.google.com/js/api.js を読み込む。
  2. gapi.load() を使って auth2 ライブラリを読み込む。gapi.load() の第2引数はコールバック関数を指定する。その関数の中で、gapi.auth2.init() を使って GoogleAuth オブジェクトを初期化する。
  3. gapi.auth2.init() の引数に認証情報で取得した OAuth 2.0 クライアントIDを指定する。

HTML にはふたつのボタンが準備されている。一つは "authorize and load" で、もう一つが "execute" ボタンである。まず、"authorize and load" ボタンクリック時の動作。

  1. gapi.auth2.getAuthInstance().signIn() を呼び出して、Google アカウントでのサインインを促す。signin() の引数には、オブジェクトで scope: を指定する。一番分かりやすいスコープの例は https://www.googleapis.com/auth/photoslibrary.readonly だろう。
  2. signin に成功したら、続いて gapi.client.setApiKey() を使って認証情報で取得した API キーを指定する。
  3. 続いて、gapi.client.load("https://content.googleapis.com/discovery/v1/apis/photoslibrary/v1/rest") で Google Photos Library をロードする

"execute" ボタンクリック時の動作。

  1. gapi.client.photoslibrary.albums.list({}) で sign in した Google アカウントの Google Photos のアルバム一覧を呼び出す。これでアルバムの JSON データが手に入る。
参照情報: Google Sign-in JavaScript client reference

作成: 2020-05-10 17:07:38更新: 2020-05-10 17:07:38
https://museo-anonimo.jp/nanban/?id=1514,https://museo-anonimo.jp/nanban/tr/1514