はじめに
Notion Tips の第174回目はヘルスケアの続きで、体重をヘルスケアと Notion に同時記録するショートカットを解説します。最終的に Apple Watch から簡単に体重が記録できるようになりました。
ページ更新のアクション
iPhone の Notion アプリではページは作成できるものの、更新することができません。そのため更新は Notion API を使うことにします。まず、ヘルスケアの今日のページを取得することにします。まず、NotionRubyMapping で取得してみます。まず、データベースを取得します。
db = Database.find "https://www.notion.so/hkob/13bd8e4e98ab80fabf87d97793c07e52?v=e138166b31574b6eb1066193a1327a90&pvs=4" => NotionRubyMapping::Database-13bd8e4e98ab80fabf87d97793c07e52
作成日時プロパティを取得します。
dp = db.properties["作成日時"] => #<NotionRubyMapping::CreatedTimeProperty:0x000000012305a298
今日の日付を取得します。
page = db.query_database(dp.filter_equals(Date.today)).first => NotionRubyMapping::Page-15bd8e4e98ab8052ad5fec64742f9db8
これをシェルスクリプトに変換します。
print db.query_database(dps.filter_equals(Date.today), dry_run: true) #!/bin/sh curl -X POST 'https://api.notion.com/v1/databases/13bd8e4e98ab80fabf87d97793c07e52/query' \ -H 'Notion-Version: 2022-06-28' \ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \ -H 'Content-Type: application/json' \ --data '{"filter":{"and":[{"property":"作成日時","created_time":{"after":"2024-12-14T00:00:00+09:00"}},{"property":"作成日時","created_time":{"before":"2024-12-14T23:59:59+09:00"}}]},"page_size":100}'=> nil
この JSON を後でショートカットに設定します。
一方、このページの体重データを更新します。
page.properties["体重"].number = 71.9 => 71.9 irb(main):025> page.save => NotionRubyMapping::Page-15bd8e4e98ab8052ad5fec64742f9db8
同様にこちらもシェルスクリプトに変換します。
print page.save(dry_run: true) #!/bin/sh curl -X PATCH 'https://api.notion.com/v1/pages/15bd8e4e98ab8052ad5fec64742f9db8' \ -H 'Notion-Version: 2022-06-28' \ -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \ -H 'Content-Type: application/json' \ --data '{"properties":{"体重":{"number":71.9,"type":"number"}}}'=> nil
Notion のデータを更新するだけのショートカット
ここまでの情報を使って、Notion API によるデータ更新部分だけを先に作ってみます。まず、前半のページ取得部分です。

最後の URL の部分で page_id が取得できたので、そのページの体重を更新します。

実行してテストしてみた結果は以下の通りになります。無事体重の値が声で登録した数値に書きかわっています。なお、ブログを書いているうちに日付が更新されてしまったのでダミーデータになっています。

ヘルスケアサンプルを登録
Notion への書き込みが成功したので、最後にヘルスケアサンプルを記録します。これは iPhone でしか設定できないので、こちらで追加しました。

おわりに
毎日、iPhone からヘルスケアアプリを起動し、その後身体測定値を開いて数値を入力するのが面倒でした。声だけの作業なので、Apple Watch から声で体重登録ができるようになりました。さらに Notion 側にも同時に記録されるのもモチベーションを保ち続けられていいですね。