はじめに
Notionは便利なのですが、さっとメモを取りたい時にアプリが起動していないと実際のメモ作成までにかかる時間が結構かかる点が不満でした。
今回はAlfredのWorkflowを使ってNotionのデータベースに新しいメモを追加し、そのメモをNotionアプリで開く方法を紹介します。
前提条件
- Alfredがインストールされていて、Powerpackを購入してあること(Workflowを使う)
- Notionアカウントを持っていること
-
jq
コマンドがインストールされていること(Homebrewを使用してインストール可能)
brew install jq
手順
Notion APIトークンとデータベースIDの取得
APIトークン
Notionのインテグレーションページにアクセスし、名前はAlfred Memo Adderとでもして新しいインテグレーションを作成します。インテグレーションのAPIトークンをコピーします。
データベースID
Notionのデータベースに移動し、URLからデータベースIDを取得します。データベースURLhttps://www.notion.so/workspace_name/XXXXXXX?v=ZZZZZZZZZZZ
のXXXXXXXの部分です。あとで使うのでどこかに保存しておいてください。
Alfred Workflowの作成
Alfredのアイコンをクリックし、Preferencesを開き、Workflowsタブに移動。
- 新しいワークフローを作成:
左下の「+」ボタンをクリックし、「Blank Workflow」を選択します。ワークフローに名前(例:「Notion Page Creator」)を付けます。 - キーワードトリガーの設定
キーワードトリガーを追加:ワークフロー編集画面で、右クリックして「Inputs」 > 「Keyword」を選択します。
Keyword: memo with space Argument Optional
Title: Add new memo to Notion
Subtext: Enter the memo content
と設定します。ここの文章は何にしても自由です。 - スクリプトアクションの設定
キーワードトリガーの右に、「+」ボタンをクリックし、「Actions」 > 「Run Script」を選択します。
Language: /bin/zsh --no-rcs with input as argv running instances Sequentially
として以下のスクリプトを入力します。APIトークンとデータベースIDを適切な値に置き換えてください。
コードをコピーする
#!/bin/bash
# Alfredの入力からメモの内容を取得。引数がない場合はデフォルトのタイトルを設定
NEW_MEMO_TITLE=${1:-Untitled}
# 必要なAPIトークンとデータベースIDを設定
API_TOKEN="your_notion_api_token"
DATABASE_ID="your_database_id"
# APIリクエストを実行して新しいページを作成
RESPONSE=$(curl -s -X POST "https://api.notion.com/v1/pages" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-H "Notion-Version: 2022-06-28" \
-d '{
"parent": { "database_id": "'$DATABASE_ID'" },
"properties": {
"Name": {
"title": [
{
"text": {
"content": "'$NEW_MEMO_TITLE'"
}
}
]
}
}
}')
# レスポンスを表示して確認
echo "API Response: $RESPONSE" >&2
# ページIDを取得
PAGE_ID=$(echo $RESPONSE | jq -r '.id' | sed 's/-//g')
# Notionアプリで開くためのURLを生成
FULL_URL="notion://www.notion.so/$PAGE_ID"
# URLを表示して確認
echo "Generated URL: $FULL_URL" >&2
# URLを出力してAlfredの次のアクションで使用
open $FULL_URL
実行方法
Alfredで「memo」と入力し、続けて新しいメモの内容を入力します。(入力しない場合はUntitledというページが生成されます。)
Bashスクリプトが実行され、新しいメモがNotionのデータベースに追加されます。
作成されたメモのURLが生成され、open
コマンドによってNotionアプリで開かれます。