今回の記事ではWoxというランチャーアプリから、NotionへToDoを追加する方法を紹介したいと思います。MacでAlfredというアプリを使っている方だと、AlfredからNotionへToDoを追加する方法をご存知の方もいるかと思いますが、今回の記事は、そのWindows版です。
- Woxの説明と設定方法
- WoxとNotionAPIの組み合わせ
- WindowsユーザーでNotionに爆速でメモを取りたい人向け
記事を書こうと思った背景
普段のタスク管理やメモは、Notionを使っています。普段使いのPCはMacで、会社から支給されるPCが、Windowsになります。Macでは、Alfred×Notionでメモを取っており、同じようにWIndowsで出来ないかと模索した結果が、今回の記事の内容です。素早くNotionにメモを取りたいWindowsユーザーの助けになれば幸いです。
Woxとは
Woxはランチャーアプリの1つです。以下からダウンロードして、インストールをします。
インストール手順
①バージョンの選択(執筆時点で1.4.1196が最新でした。)
②インストーラーのダウンロード
Wox Full InstallerX.X.exeを今回は使います。必要なソフトがすべて入ったパッケージです。
③ダウンロードしたインストーラーの起動
起動時にチェックボックスがあります。とくに意図がなければ、すべて選択した状態で問題ありません。
- Wox・・・Woxの本体です。
- Python・・・拡張機能を動かす際にPythonが必要になります。
- Everything・・・ファイル検索ツールになります。(今回の設定だけであれば不要です。)
④インストール完了
上記画面が表示されたらインストール完了です。
Woxの設定
続いて、Woxを設定画面からプラグインの準備をします。
設定画面の表示
以下のいずれかで設定画面を表示できます。
- タスクトレイのWoxを右クリックし、settingをクリック
- 「alt+space」でWoxを起動し、「settings」と入力(上記図)
Pluginディレクトリの表示
WoxのPluginタブを選択し、Plugin Directoryを選択します。
開いたディレクトリの1つ上の階層が、Pluginのルートディレクトリになります。(上記図参照)
プラグインの作成
プラグインを作成します。
ディレクトリの作成
WoxのPluginルーティディレクトリに任意のディレクトリを作成します。 この記事ではNotionTodoというディレクトリにします
必要なファイル・ディレクトリの配置
作成したディレクトリ直下に以下2つのファイルを作成します。
- plugin.json
- notion_todo.py
- images/任意の画像
plugin.jsonファイルの配置
{ "ID":"45062B1F-BF2E-11ED-ACB9-4851C5DDAA62", "ActionKeyword":"fn", "Name":"Notion ToDo", "Description":"Notion ToDo", "Author":"HanatarePapa", "Version":"1.0", "Language":"python", "Website":"", "IcoPath":"Images\\notion.png", "ExecuteFileName":"notion_todo.py" }
- ID・・・ID(所得方法は下部に記載していますので、参考にしてください。)
- ActionKeyword・・・プログラムを起動するWox入力コマンド(私はfsと入力すると、動くようにしています)
- Name・・・プラグインの名前
- Description・・・プラグインの説明/li>
- Author・・・作成者
- Version・・・プログラムのバージョン
- Language・・・使用するプログラム言語
- IcoPath・・・実行するPluginのアイコン画像の配置場所
- ExecuteFileName・・・Pluginの実行ファイルの配置場所
IDの取得方法
以下のコマンドを実行します。
python -c 'import uuid; print(uuid.uuid1().hex.upper())'
もしくは、以下のようにファイルを作って、pythonで実行しても取得できます
実行ファイル(notion_todo.py)の配置前の準備
pythonをはじめて利用される方は、以下のコマンドを実行しrequestsモジュールを追加してください。
pipのアップグレード
python -m pip install --upgrade pip
requestsモジュールの追加
pip install requests
実行ファイル(notion_todo.py)の配置
今回は「notion_todo.py」というファイルを作成し、以下のような記載をします。
import requests from wox import Wox def createMemo(user_input): data = { "children":[{ "to_do": { "rich_text": [{ "type": "text", "text": { "content": user_input, "link": None } }], "checked": False, "color": "default", } }] } return data class Main(Wox): def query(self, user_input): # user_input に対応する結果を返す return [{ 'Title': 'input: ' + user_input + ')', 'SubTitle': '入力内容', 'IcoPath': 'Images\\notion.png', 'JsonRPCAction': { 'method': 'action', # 選択時に呼ばれるメソッド名 'parameters': [user_input], 'dontHideAfterAction': False } }] def action(self, user_input): # 項目が選択されたので処理する # NOTIONのTOKEN・URL・ヘッダー情報を設定 NOTION_ACCESS_TOKEN = 'secret_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' index_url = f'https://api.notion.com/v1/blocks/YYYYYYYYYYYYYYYYYYYYYYYYY/children' headers = { 'Authorization': 'Bearer ' + NOTION_ACCESS_TOKEN, 'Notion-Version': '2022-06-28', 'Content-Type': 'application/json', } jsondata = createMemo(user_input) r = requests.patch(index_url, headers=headers,json=jsondata, verify=False) if __name__ == '__main__': Main()
実行ファイル(notion_todo.py)の概要
def query
このメソッドは、Woxを起動し、ActionKeywordを入力した際に、入力欄に表示する内容を記載しています。
def action このメソッドで入力された内容をNotionに送っています。
以下のXXXXXX部分とYYYYY部分はNotionのアクセストークンと、InboxページのIDになるため、利用される場合はご自身のものに変更をしてください
- NOTION_ACCESS_TOKEN = 'secret_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
- index_url = f'https://api.notion.com/v1/blocks/YYYYYYYYYYYYYYYYYYYYYYYYY/children'
以上で設定は完了です。
実行
Pluginの読み込み
「alt+spaceキー」でWoxを起動し、「Restart Wox」として、Woxを再起動し、Pluginを読み込ませます。
プラグインの実行
「alt+spaceキー」でWoxを起動し、「fn」と入力すると上記画像のような表示になります。
そのまま続いて任意の値を入力すると、内部的に作成した「notion_todo.py」のプログラムが動き、上記の赤枠のようにNotionにメモを取ることができます。
まとめ
今回は、Macでは有名なAlfredを使ってNotionにメモを取る方法をWindowsで実現する方法を紹介しました。もし、Windowsユーザで簡単にNotionにメモを取りたいという方の参考になれば幸いです。