みなさんはタスク管理アプリに何を使われてますか??
TorelloやGoogleKeep、MicrosoftのTODOとか最近のだとJootoとかもありますね。
僕はかなりのタスク管理マニアなので、一通りのタスク管理ツールは試してきました。
その中で最も気に入って使い続けているツールがあります。
それはTodoistというツールです。

シンプルでわかりやすいUI、オンラインでもオフラインでもストレスなく動作するアプリケーション。
そしてGoogleカレンダーやIFTTTなど、他のアプリケーションとも強固に連携することが可能なパワー。
年4000円ほどのプレミアムプランもありますが、無料枠でも十分すぎるほど役に立ちます。
そしてなんと、APIまで実装されており、自身のタスク管理を自由にスクリプトで扱うことも可能です。
さて、今回はそんなTodoistのAPIをPythonで扱う方法を紹介します。
PythonやDjangoの使い方については書いていません。
これから勉強を始める方にはこの動画教材とかおすすめです。
僕もこれで勉強しましたが、Pythonの基礎からDjangoの使いかた、アプリケーションのデプロイまで体系的に学べます。
[kattene]
{
“image”: “https://i.udemycdn.com/course/240×135/1159316_eaab_8.jpg”,
“title”: “プログラミング初心者でも安心、Python/Django入門講座 “,
“description”: “初心者にオススメなプログラミング言語「Python」と、便利なWebアプリケーションフレームワーク「Django」でWebアプリケーションの作成方法を学ぼう! “,
“sites”: [
{
“color”: “orange”,
“url”: “https://px.a8.net/svt/ejp?a8mat=2ZLBNL+2HB1IQ+3L4M+BW8O2&a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fpythondjango-a%2F”,
“label”: “Udemy”,
“main”: “true”
}
]
}
[/kattene]
もくじつくるもの
今回TodoistAPIを使用して作ったものはこちら。
Todoistプロジェクトの進捗状況を表示するDjangoアプリケーション、だいぶ形になってきたー!
というかこの機能普通に公式にほしいんだけど、なんでないんだろ笑 pic.twitter.com/tkal3tRS7t— かしわばゆき (@yuki_kashiwaba) September 7, 2019
プロジェクトごとのタスク完了状況をパーセンテージで表示してくれるプログラムです。
中身はPythonとDjangoでできてます。
今回はこの内部で動作している、PythonでTodoistAPIを扱う部分のみ紹介します。
APIを使ってみる
Pythonのインストールされた環境を想定しています。
まずはpipでパッケージをインストールします。
pip install todoist-python
次は、API連携に必要なAPIトークンを確認します。
Todoistにログインして、[右上の歯車]→[設定]→[連携機能]の順にクリックします。
一番下までスクロールすると、[API トークン]という項目があるので、ここに表示されている文字列をコピーしておきます。
ここまで来たらちょっと動かしてみましょう。
from todoist.api import TodoistAPI api = TodoistAPI('コピーしたAPIトークン') api.sync() print(api.state['projects'])
上のスクリプトを実行すると、以下のようなJSONが返ってきます。
自分のプロジェクトとその情報がいっぺんに渡される感じですね。
>>> print(api.state['projects']) [Project({'child_order': 0, 'collapsed': 0, 'color': 48, 'has_more_notes': False, 'id': 2079581639, 'inbox_project': True, 'is_archived': 0, 'is_deleted': 0, 'is_favorite': 0, 'legacy_id': 200533447, 'name': 'Inbox', 'parent_id': None, 'shared': False}), Project({'child_order': 1, 'collapsed': 0, 'color': 31, 'id': 2216588014, 'is_archived': 0, 'is_deleted': 0, 'is_favorite': 0, 'name': 'Todoistのプロジェクト進捗表', 'parent_id': 2216588003, 'shared': False}), Project({'child_order': 1, 'collapsed': 0, 'color': 46, 'id': 2217058005, 'is_archived': 0, 'is_deleted': 0, 'is_favorite': 0, 'name': 'My Development Plan', 'parent_id': 2208967577, 'shared': False})]
TodoistAPIの使い方についてはTodoistAPI公式ドキュメントが充実していてとてもわかりやすいです。
公式最強ですね。
まとめ
さくっとTodoistAPIをPythonで扱う方法についてまとめました。
世の中にはほんとに便利なツールがあふれてますねー。
便利なAPIもたくさんあるので、うまいこと連携&自動化させて生産性を上げていきたいなと思います。
[kattene]
{
“image”: “https://i.udemycdn.com/course/240×135/1159316_eaab_8.jpg”,
“title”: “プログラミング初心者でも安心、Python/Django入門講座 “,
“description”: “初心者にオススメなプログラミング言語「Python」と、便利なWebアプリケーションフレームワーク「Django」でWebアプリケーションの作成方法を学ぼう! “,
“sites”: [
{
“color”: “orange”,
“url”: “https://px.a8.net/svt/ejp?a8mat=2ZLBNL+2HB1IQ+3L4M+BW8O2&a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fpythondjango-a%2F”,
“label”: “Udemy”,
“main”: “true”
}
]
}
[/kattene]