🔖
NotionAPIを使用して、ターミナルからPythonでNotionにメモを書く仕組みを作ってみた
Macのターミナルから、PythonとNotionAPIを使用して、Notionのデータベースにメモを書いていけるようにしたというメモです。
動機としては、iPhoneからは、「Fast Notion」というアプリからNotionのデータベースにメモを書けるアプリがあって便利。
↓
MacだとNotionアプリで直接編集する必要があり、やや使い勝手が悪かった。
↓
ターミナルからメモできるようにしよう
という感じでした。サクサク動くので、作った結果満足しています。
どのようなものを作ったか。
ターミナルから次のように叩く。(mはnotionに登録するという関数)
#m ここに登録するメモを入力
すると、データベースに次のように、入力した内容に応じた行ができる
やり方
NotionAPIの設定
NotionAPIは、2022年3月2日に正式リリースされた機能。データの登録や参照がPythonなどから簡単にできるので便利です。
次のブログなどを参考に設定します。
登録するコード
ターミナルからNotionのDBに登録するコード
Python部分
import sys
from notion_client import Client
NOTION_TOKEN = '自分のNOTIONのトークンを入力'
notion = Client(auth=NOTION_TOKEN)
def main(message):
property_name = {"title": [{"text": {"content": message}}]}
notion.pages.create(
**{'parent': {'database_id': 'データベースIDを入力'},
'properties': {'Name': property_name}
}
)
if __name__ == "__main__":
message = '\n'.join(sys.argv[1:])
main(message)
.bashrc
function m() {
command python memo_notion.py $* &
clear
}
-
memo_notion.py
はコマンドライン引数を受け取る。 引数が複数ある場合は改行 -
.bashrc
にm
という関数を定義- ターミナルから
m hoge
で、hogeというデータをnotionに送る -
$*
は、全引数リストのリストのこと。 - エイリアスを
alias m='python memo_notion.py'
のように設定する方法もできるが、引数や、&の扱いが難しかった。 - 末尾の
&
でバックグラウンド実行になり、次の入力までの待ち時間がほぼなくなる
- ターミナルから
まとめ
今のところ気に入っています。
もっと良い仕組みとかあれば教えて欲しい。m hoge
のmの箇所を省略する仕組みはないのでしょうか。
簡単ですし、Python初心者向けの導入とかでも良さそうな感じ。
Discussion