[WIP]スマホカメラで ISBN を読み取って書誌情報を Notion の DB に追加する
課題やりたいこと成果物のイメージやったことSpreadsheet を準備するAppSheet アプリを作成するAppSheet から新規アプリを作成し Columns の設定を行うAppSheet Workflow 機能から GAS を kick する設定を行うNotion のデータベースを準備するGAS を deploy するopenBD についてソースコード
課題
蔵書を Notion のデータベースで管理していて、新しい書籍を購入するたびに手作業でぽちぽち入力していたが、以下の課題を感じていた。
- 単純に入力作業が面倒
- タイトルや著者を入力する際のフォーマットが統一できておらず、検索性が良くない
- 出版社等のカラムを新たに増やそうと思うと、途方もない手作業が発生しそうなのでやりたくない
やりたいこと
- ISBN から書誌情報を取得して、そのまま Notion のデータベースに入れられるようにする
- ISBN の手入力はどう考えても面倒なので、カメラでバーコードを読み取って入力できるようにする
成果物のイメージ
Mermaid
やったこと
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 を控えておく
- 内部インテグレーションをデータベースに付与する
- ページ右上の「共有」から、作成した内部インテグレーションを「招待」する
GAS を deploy する
openBD について
ソースコード
isbn2notion
barleytea • Updated Jul 6, 2022