5️⃣

S24. 声でタスク登録アプリ

声でタスク登録アプリは、テンプレートとともにアプリを配布しています。単に使いたいだけの人は、以下のリンクからテンプレートを複製してください。

24.1 ToDo リストによる音声タスク登録

💡
今日のタスク
終わっていないタスク
ToDo リストブロックは上のコールアウトブロックの下に追加していきます。このブロックの URL を取得します(ここに記載された URL などは例なので注意してください)。
📝
ブロックへのリンク
例: https://www.notion.so/hkob/S24-3a50bea68b7346e9bb7602186f4fc270?pvs=4#d072e48ad48b4d8a88b56b9cd6a4c31b
この URL からこの block_id を取り出して貼り付けておきましょう。
📝
block_id
例: d072e48ad48b4d8a88b56b9cd6a4c31b
NOTION_API_KEY と block_id をテキストに記録します。インテグレーションキーはいつものように同期しておきます(スクリーンショットの block_id は元のテンプレートのものになっているので注意してください)。
NOTION_API_KEY と block_idNOTION_API_KEY と block_id
NOTION_API_KEYblock_id
📝
自分のインテグレーションキーを記録
コピーしたインテグレーションキー
payload を NotionRubyMapping で調べます。まず、上の block_id からブロックを取得します。
# コールアウトブロックを取得 cob = Block.find "自分のブロックIDを記述"
新規の To do block を作成します。
# ToDo ブロックを作成 tdb = ToDoBlock.new "abc"
Append block children のスクリプトを dry_run で表示
# Append block children API 呼び出しを表示 print cob.append_block_children(tdb, dry_run: true)
出力されたスクリプトを貼り付けておきます。
📝
スクリプトの出力
「テキストを音声入力」と「テキスト」を設置します。テキストの中身はスクリプトの出力の data 部分を貼り付けます。その後、abc の部分に「音声入力されたテキスト」に置き換えます(2箇所あります)。
payload JSONの作成payload JSONの作成
payload JSONの作成
{"children":[{"type":"to_do","object":"block","to_do":{"rich_text":[{"type":"text","text":{"content":"abc","link":null},"plain_text":"abc","href":null}],"color":"default","checked":false}}]}
テキストの雛形
以下のように設定します。詳細は書籍の解説を読んでください。
Append block children API の呼び出しAppend block children API の呼び出し
Append block children API の呼び出し
デバイスが Apple Watch であるかどうかをチェックして、Apple Watch でなければページを開きます。
notion imagenotion image
Apple Watch からも音声登録をしたい場合には、「Apple Watch に表示」にチェックを入れておきます。
Apple Watch に表示Apple Watch に表示
Apple Watch に表示
他人に渡すことがある場合には、読み込むための質問を設置してください。
再生ボタンを押して動作確認を実施してください。

24.2 データベースに対する音声タスク登録

タスク
タスクは上のタスクデータベースにページを作成する形になります。このデータベースの URL を取得します(ここに記載された URL などは例なので注意してください)。
📝
データベースへのリンク
例: https://www.notion.so/hkob/345e60a60fce463b8c25c7e767315b09?v=9c3913c886ae42a199065f18f0dec169
この URL からこの database_id を取り出して貼り付けておきましょう。
📝
block_id
例: 345e60a60fce463b8c25c7e767315b09
NOTION_API_KEY と database_id をテキストに記録します。インテグレーションキーはいつものように同期しておきます(スクリーンショットの database_id は元のテンプレートのものになっているので注意してください)。
NOTION_API_KEY と database_idNOTION_API_KEY と database_id
NOTION_API_KEYdatabase_id
📝
自分のインテグレーションキーを記録
コピーしたインテグレーションキー
payload を NotionRubyMapping で調べます。データベースに対して
db = Database.find "自分のデータベースIDを記述" print(db.create_child_page(dry_run: true) do |_, pp| pp["Name"] << "abc" end )
出力されたスクリプトを貼り付けておきます。
📝
スクリプトの出力
「テキストを音声入力」「テキスト」「URLの内容を取得」を以下のように設定します。テキストの雛形は下に置いておきます。
Create a page API の呼び出しCreate a page API の呼び出し
Create a page API の呼び出し
{"properties":{"Name":{"type":"title","title":[{"type":"text","text":{"content":"abc","link":null},"plain_text":"abc","href":null}]}},"parent":{"database_id":"345e60a60fce463b8c25c7e767315b09"}}
テキストの雛形
To do ブロックのものと同様に Apple Watch かどうか判定し、そうでなければ作成したページを表示します。もし、アプリでなくブラウザで開きたい場合には、置き換え処理は除外し、辞書の値を直接開きます。
notion imagenotion image
Apple Watch からも音声登録をしたい場合には、「Apple Watch に表示」にチェックを入れておきます。
Apple Watch に表示Apple Watch に表示
Apple Watch に表示
他人に渡すことがある場合には、読み込むための質問を設置してください。
再生ボタンを押して動作確認を実施してください。