Hanatare's PaPa

Make life a little richer.

Virtual Space of Hanatare's PaPa

人生をほんの少しだけ充実させる

【Notion】Windows版AlfredのWoxを使ってNotionにメモをとる

今回の記事では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つです。以下からダウンロードして、インストールをします。

github.com

インストール手順

①バージョンの選択(執筆時点で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になるため、利用される場合はご自身のものに変更をしてください

以上で設定は完了です。

実行

Pluginの読み込み

「alt+spaceキー」でWoxを起動し、「Restart Wox」として、Woxを再起動し、Pluginを読み込ませます。

プラグインの実行

「alt+spaceキー」でWoxを起動し、「fn」と入力すると上記画像のような表示になります。

そのまま続いて任意の値を入力すると、内部的に作成した「notion_todo.py」のプログラムが動き、上記の赤枠のようにNotionにメモを取ることができます。

まとめ

今回は、Macでは有名なAlfredを使ってNotionにメモを取る方法をWindowsで実現する方法を紹介しました。もし、Windowsユーザで簡単にNotionにメモを取りたいという方の参考になれば幸いです。