Apple Watch を使ってヘルスケアと Notion に体重値を同時登録するショートカット: Notion Tips (174)

はじめに

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 側にも同時に記録されるのもモチベーションを保ち続けられていいですね。

hkob.notion.site