春ごろに「GASで作るツール」という表題で、GAS(Google Apps Script)による蔵書管理ツールの話などを取り上げましたが、そのときに見たQiitaの記事に、蔵書のデータベースをGoogleスプレッドシートではなく、Notionに蓄えていくというものがありました。で、最近その加筆修正版というのが、Zenn.devのほうに載っていました。
Qiitaの記事では、Notionとのやりとりの具体的な方法が書かれていなかったと思うのですが、Zennの記事ではそのあたりのやり方も明らかになっています。なるほどdoPost()を使うのですね。早速こちらでもやってみました。で、ここで少しハマりました。あれ?Notionのデータベースが更新されない……どういうこと?
原因は、GASをウェブアプリとしてデプロイするとき、ユーザを「自分のみ」にしていたことにありました。これを「全員」に変えれば、ちゃんと動きました。自分で制限をかけていたわけです……トホホ(doPost()にreturnを書いていないので、エラーは出ますが、それはまた別の問題)。
Notionのデータベースに蓄えていくのはとてもナイスです。Googleのbook apiではときおりサムネイル画像が欠落したりしていますが、画像だけ(13桁のisbnを10桁のものに変換して)amazonから取ってくるというアイデアも秀逸です。バーコードの読み取りはquagga.jsのフォークされたものを、cdn経由で使えばOK(でも、少し読み取りが不安定な感じもしたので、個人的にはisbnを手で入れるのが吉かも、と思いました)。
さらに、見栄えの問題ですが、cdnで読み込むbootstrapもいいですね。