みなさん,こんにちは。
シンノユウキ(shinno1993)です。
今回はGlide,OpenBD,GoogleAppsScriptを利用した書評アプリの作り方を紹介している連載の第2回です。
前回は,書誌情報データベースのOpenBDについて紹介しました。OpenBDの概要とAPIの簡単な利用方法について解説しました:
前回はAPIをブラウザから利用しましたが,今回はプログラム側:GoogleAppsScriptから利用する方法を紹介したいと思います。
GoogleAppsScriptでOpenBDを利用する
まずはスプレッドシートを用意
GoogleAppsScriptを利用するために,まずはスプレッドシートを用意しましょう。
GoogleAppsScriptには,そのスクリプト単体で利用できるスタンドアロンスクリプトと,スプレッドシートなどのGoogleアプリケーションに紐付いた形で利用できるコンテバインドスクリプトの2種類があります。今回は,取得した書誌情報を最終的にスプレッドシートに転記していきたいので,コンテバインドスクリプトを利用します。
まずはスプレッドシートから用意していきます。新規のスプレッドシートを開き,以下のようなシートを作成してください:
- 1列目:ISBN
- 2列目:書名
- 3列目:著者
- 4列目:書影URL
この状態でスクリプトエディタを開けば,このスプレッドシートに紐付いたコンテバインドスクリプトを作成することができます。開いたスクリプトエディタにコードを書いていきましょう。
最も簡単に書誌情報を取得できるスクリプト
まずは,書籍情報を取得するための関数を作ってみましょう。
ISBNを渡すと,書誌情報のJSONをリターンする関数を作ってみます。以下のような感じでOKです:
function getBibliographByISBN(isbn){
const url = `https://api.openbd.jp/v1/get?isbn=${isbn}`;
const res = UrlFetchApp.fetch(url);
return JSON.parse(res.getContentText());
}
- 2行目:APIのURLを指定しています。
${isbn}
の箇所にISBNが入ります。 - 3行目:実際に通信を行っています。今回の場合は
res
にJSONで結果が返ってきます。 - 4行目:文字列形式で返ってきたJSONをGASで扱いやすいJSONオブジェクトに変換しています。
実際にAPIを叩いてみる
さっそく,このコードを試してみましょう。前記事の例と同様に『佐々木敏の栄養データはこう読む! 』の書誌情報を取得してみます。
ISBNは978-4-7895-5442-8ですので,それを引数として渡してやればOKです。以下のコードをスクリプトエディタに入力してください:
function myFunction(){
console.log(getBibliographByISBN("978-4-7895-5442-8"))
}
ISBNを引数とした関数getBibliographByISBN
を実行します。その結果をconsole.Log
でログとして出力するコードです。以下のように,実行する関数をmyFunction
にした状態で実行してみてください。
実行後,Ctrl+Enterでログを確認してください。下記のようなログが取得できていればOKです。タイトルや著者名など情報が取得できているのがわかります。
まとめ
今回はGoogleAppsScriptを利用して,プログラム側からこのAPIを叩いてみました。
コードも非常に単純ですので,ISBNさえわかれば比較的簡単に書誌情報を取得できることがわかるかと思います。
次回は,スプレッドシートにリストされているISBNから書誌情報を取得し,同じスプレッドシートに転記する方法を紹介したいと思います。