声でタスク登録 : Notion 解説(61)

1. はじめに

こんなネタを提供していただきました。

実は、以前 Siri からカレンダーを登録することで、間接的に Notion に登録する記事を書きました。これはこれでよかったんですが、意外と声で日付を入れるのが面倒で使わなくなりました。

前回の記事で、日付未確定のタスクを用意しました。日付が未確定なので、タスクを To Do ブロックで記述し、日程が決まった段階で、タスクページのカレンダーにドラッグすることで、タスク化する方策です。また、iPhone や iPad で簡単に登録しやすいように入力専用ページを作成していました。

そんなわけで、この To Do ブロックを声で登録してみることにしました。

2. 設計

挿入したいのはこの Toggle ブロックです。URL からこのブロック ID (05a57c5670274582986feb29e99665a5)を取得します。

挿入先の Toggle ブロック

このブロックに To Do ブロックを追加するショートカットを作ればよいことになります。JSON を書くのは面倒なので、NotionRubyMapping に教えてもらいます。

require "notion_ruby_mapping"
include NotionRubyMapping
NotionCache.instance.create_client ENV["NOTION_API_KEY"]
block = Block.find "05a57c5670274582986feb29e99665a5"
print block.append_block_children(ToDoBlock.new("text"), dry_run: true)

結果として以下のシェルスクリプトが出てきました。これを見ながらショートカットの JSON を書きます。

#!/bin/sh
curl -X PATCH 'https://api.notion.com/v1/blocks/05a57c5670274582986feb29e99665a5/children' \
  -H 'Notion-Version: 2022-02-22' \
  -H 'Authorization: Bearer '"$NOTION_API_KEY"'' \
  -H 'Content-Type: application/json' \
  --data '{"children":[{"type":"to_do","object":"block","to_do":{"rich_text":[{"type":"text","text":{"content":"text","link":null},"plain_text":"text","href":null}],"color":"default","checked":false}}]}'

3. ショートカットの作成

JSON が分かれば簡単です。スクリプトは以下のようになりました。テキストを音声入力して、そのテキストを登録しているだけです。最後にタスク一覧ページを開いています。

作成したショートカット

4. 実行例

iPhone の Siri での実行例です。完成報告で Tweet しました。Siri を立ち上げ、「タスク登録」と話すと「テキストはなんですか?」と出るのでタスク名を話します。終わると自動的に Notion が開き、タスクが登録されていることがわかります。

なお、上記のショートカットはここで配布しています。iPhone, iPad, Mac の人はこちらをお使いください。

おまけ

このショートカットは Apple Watch でも動きます。Apple Watch では最後の Notion を開く動作が動かないので、これを外した Apple Watch 専用版も作成しました。ショートカットは Apple Watch のコンプリケーションに登録できるので、こんな感じで 3 時の部分に登録してみました。このコンプリケーションをタップすると、音声入力を促されるので、音声入力した上で右上の完了を押すとタスク登録されます。出先などでタスクを思いついたら、Apple Watch だけ(GPS 版はネットワークに繋がっている iPhone も必要)で登録できるのは嬉しいと思います。

Apple Watch のコンプリケーション