買った本の管理ってどうしていますか?
1冊、2冊ならよいのですが、月に10冊以上は買っているヘビーユーザーにはそこそこ問題です。
すべて通販で購入するのであればECサイトの購入履歴が使えるのですが、本屋で購入する場合、複数の通販で購入する場合などがあるため一括で管理できるようにしたい。
あわよくば本の発売日を知ったら記録しておきたい。
なにかいいツールはないものか?
Notionで管理してみる
All-in-one workspaceを謳いタスク管理、スケジュール管理、カレンダー、ToDoリスト、ブックマークなどなど様々なテンプレートを使用して便利に使える万能ツールです。
Webアプリなのでブラウザがあれば環境を選ばないのもよい点です。
Notionだったらどこでも使える本の管理データベースができるはず。
で作ってみた
良い感じではないですか。
買った本だけではなく、これから発売する本、気になった本も記録しておけるので理想的。
エクスポート機能があるのもベリーグッドです。
もっと便利に使いたい
人間は贅沢になっていくもの。
本のタイトルが増えてくると毎回手動で入力するのがためになってきます。
なんとか簡単にできないか?
調べたところNotionには他のツールを連携する機能があります。
また、Notion APIを使用することでNotionにリクエストをなげることでページの作成、更新を行うこともできます。
これを使用すれば!
Notion APIを使う
「設定」の「コネクト」から「インテグレーションを作成、または管理する」ページを開く。
インテグレーションページで「新しいインテグレーション作成」をクリックして、権限などを設定する。
設定が終わると自分のワークスペースで使用できるシークレットキーが発行されます。
NotionのAPIリファレンスページを読みながらPHP+Laravelで書いていきます。
https://developers.notion.com/reference/intro
ページ更新APIのURL
$api_pages_url = 'https://api.notion.com/v1/pages';
認証ヘッダ
$header = [
'Authorization' => `作成したシークレットキー`,
'Content-Type' => 'application/json',
'Notion-Version' => '2022-06-28',
];
データを追加するデータベースIDはページのURLの後ろの部分になります
https://www.notion.so/データベースID
更新するためのパラメーター
$params = [
'parent' => [
'database_id' => `データを追加するNotionのデータベースID`,
],
'properties' => [
'種別' => [
'select' => [
'name' => '上',
],
],
'ジャンル' => [
'select' => [
'name' => 'コミック女',
],
],
'タイトル' => [
'title' => [
0 => [
'text' => [
'content' => '悪の華道を行きましょう(5)',
],
],
],
],
'出版社' => [
'rich_text' => [
0 => [
'text' => [
'content' => '一迅社',
],
],
],
],
'著者' => [
'rich_text' => [
0 => [
'text' => [
'content' => 'やましろ梅太',
],
],
],
],
'発売日' => [
'date' => [
'start' => '2024-10-31',
],
],
'コード種別' => [
'select' => [
'name' => 'ISBN',
],
],
'コード' => [
'rich_text' => [
0 => [
'text' => [
'content' => '9784758085694',
],
],
],
],
'優先度' => [
'select' => [
'name' => '⭐️⭐️⭐️',
],
],
],
];
リクエストをなげる
Http::withHeaders($header)->post($api_pages_url, $params);
これで1行分の本のデータをページに追加することができました。
気に入った本の見つけたら、そのURLを入力することでNotionに追加するアプリも簡単にできそうです。