課題
蔵書を Notion のデータベースで管理していて、新しい書籍を購入するたびに手作業でぽちぽち入力していたが、以下の課題を感じていた。
- 単純に入力作業が面倒
- タイトルや著者を入力する際のフォーマットが統一できておらず、検索性が良くない
- 出版社等のカラムを新たに増やそうと思うと、途方もない手作業が発生しそうなのでやりたくない
やりたいこと
- ISBN から書誌情報を取得して、そのまま Notion のデータベースに入れられるようにする
- ISBN の手入力はどう考えても面倒なので、カメラでバーコードを読み取って入力できるようにする
処理イメージ
やったこと
Spreadsheet を準備する
- 新しく Google Spreadsheet を作成する
- Spreadsheet 名 : isbn2notion
- sheet 名: books
- カラム名
- id
- isbn
- title
- publisher
- pubdate
- cover
- author
- created_at
AppSheet アプリを作成する
AppSheet から新規アプリを作成し Columns の設定を行う
Make a new app
→Start with your own data
と選択し、App name
には任意の名前を入力するChoose your data
を押下し、上記で設定した Spreadsheet 名を選択し、Select
を押下する- App が作成されたら画面左カラムから
Data
→Columns
と遷移し、上記で設定した Spreadsheet 内の sheet 名(books)を選択した上で、以下のように各項目を修正する
AppSheet Workflow 機能から GAS を kick する設定を行う
- AppSheet の画面左カラムから
Automation
→Bots
と遷移する New Bot
を押下し、name としてWhen a books record is created, updated, or deleted, send a notification
を指定する- // TODO: ちょっと hacky な手順に見えるので、正攻法を確認すること
- Event の中身は以下のように設定する
Processes
タブに遷移してtable
としてbooks
を選択し、新しいtask
を作成する。task
の中身は以下のように設定するBots
タブに戻り、作成したtask
をevent
に紐付ける- 画面左カラムの
Manage
→Integrations
→IN: from cloud services to your app
をEnable
にする Create Application Access Key
を押下し、新しく Application Access Key を発行するShow Access Key
を押下して表示される文字列とApp Id
を控えておく
Notion のデータベースを準備する
- 以下のような property を持つデータベースを用意しておく
- Title
- Author
- Publisher
- PubDate
- ISBN
-
内部インテグレーションを作成し、token を控えておく Notion APIを使用したインテグレーションの作成
-
内部インテグレーションをデータベースに付与する
- ページ右上の「共有」から、作成した内部インテグレーションを「招待」する
GAS を deploy する
$ clasp push