ぬじろぐ

好きなゲーム発表ぬこちゃん

Notionの本棚に登録するiOSショートカットを作った

書籍のデータをNotionに登録するショートカットを自分用に作ったのでメモ。
本の登録は項目数が多くて!めんどい!ですよね。
ね(ΦωΦ)(ΦωΦ)ね
Notionと連携して本棚作ってくれるアプリもあるんですが、なんか操作ミスって登録できなくなっちゃって…
一旦接続が切れてしまうと既存のデータベースと紐づけできないみたいなので、もういっそ自分で作ろうということで作りました。

で、やっと思ってた通りに動くものができたので、参考にしたもの等をまとめておきます。
プログラマーでも何でもない素人がいろいろ調べてやった結果なのできれいな方法ではないかもしれませんが、とりあえず目的のものができたということが大事なので大目に見てください


動作の様子です
youtube.com

構成

iOSのショートカットは縦に長いと編集が面倒になるので、3つに分けました。
1.ISBNコードから書籍のデータを取得
2.書籍のデータを変数に割り当て、json形式のテキストを生成する
3.jsonテキストをNotion APIに送信する


2をホーム画面に置いてます

1.ISBNコードから書籍のデータを取得

書籍のデータはOpenBD APIから取得しています。

この部分は以下のHTML+javascriptのコピペ

ぬじろぐgithub | 画面を開いたタイミングでAPIを叩いてデータ取得
https://nujisato.github.io/nujilog/Openwindow_isbn.html

取得した情報をhtmlに出力→表示されているものを「Webページの内容を取得」を使って読み取り

当初はwebアプリ的な感じで書籍のデータを取り、コピペでNotionに登録することを想定していました。
HTMLファイルの中身をまるまるコピペでiOS上で動かせることがわかったため、webページに移動する必要ないなと…

参考
Appleショートカット単体で、Webページ以外でJavascriptを動かす - めモらンだム・ヤード

2.書籍のデータを変数に割り当て、json形式のテキストを生成する

プロパティを一つずつ設定するのが嫌だったのでテキストデータとして作ってしまっています。
書籍データは改行で切り分けて1つずつ変数に入れてるだけ

終わったら3を呼び出す

参考
NotionにiOS, MacOSのショートカットアプリから投稿する - toyoshi
Notion APIからDBアイテムを追加するときのプロパティごとの書き方 | ブログ | 静岡県のホームページ制作 | 6666666 セブンシックス

iOSショートカットは変数に何個も値を入れられる仕様らしいのですが、入れ方はわかったものの取り出し方がわからず放棄
変数の名前に変数を使うこともできないっぽい(?)ので、普通は繰り返し処理でぐるぐる回せば終わりになりそうな部分を
テキストの切り分けを使うとインデックスがつく→いちいちインデックスを指定して1個ずつ変数に入れる
というバカっぽいやり方をする羽目に
なんかいい方法ないものか…調べてもこれという情報が見つからない

3.jsonテキストをNotion APIに送信する

前項目で生成したテキストをファイルとして受け取って、Notion APIに送信
参考先でNotionに簡易メモを登録するショートカットのサンプルを配布してくれているので、ダウンロードしてきてデータベースIDとプロパティの部分だけ手順2で作ったものを送るようにしている

参考
iPhone・iPadのホーム画面からNotionへすぐにメモする方法 | ENHANCE

以上で無事登録完了できました。
jsonの記載が間違ってますよのエラーがよく出るんですが、どこが間違ってるのかまでは教えてくれないので地味に疲れましたね…
(ΦωΦ((☆ミ⊃ΦωΦ )