LoginSignup
7
14

More than 5 years have passed since last update.

Todoistの『今日のタスク』を自分のLINEに通知する方法

Posted at

やったこと

プライベートのタスクはTodoistを使って管理しています。
ただ、タスク管理していても、そもそもTodoistを確認するのを忘れてしまうということもあります。
それを防止するために、能動的に確認しにいくのではなく、受動的に知らせてほしいです。

Todoistにはリマインダーという通知機能があるのですが、タスクごとにいちいち設定していられないので使っていません。
そこで、TodoistのAPIを使って自分で通知機能を作りました!!

必要なもの

  • todoistのアカウント
  • LineNotifyの登録
  • pythonのプログラムを定期実行できる環境

Todoistとは

Todoistとはタスク管理のためのクラウドサービスです。
クラウドサービスなのでパソコンからはもちろんのこと、スマホからでも使えます。スマホアプリもあります。
タスク管理のサービスは色々使ってきましたが、Todoistが機能・デザインともに一番優れていると思っています。

LineNotifyとは

LineNotifyとはWebサービスからの通知を受けることができるLineのサービスです。
通知の方法はGmailでもよかったのですが、メールよりLineのほうが気軽なのでこっちにしました。

実装

以下コードと解説をします。

task.py
import requests

# タスクをJSON形式で取得
token = 'xxxxxxxxxxxxxxxxx' # TodoistのAPIトークン(『設定』メニューから取得できます)
filter = '#Private&(today|overdue)' # ここでは、プライベートのタスクで、期限が今日以前のものを設定しています。
response = requests.get("https://beta.todoist.com/API/v8/tasks", params={"token": token, "filter": filter}).json()

# JSONから中身だけ取り出して整形
today_task = ''
for task in response:
    today_task = today_task + task['content'] + ' \n' \

# メッセージを作成
message = '\n' \
    + '【本日のタスク】' + '\n' \
    + today_task

# LineNotifyのトークンとAPIを設定
line_notify_token = 'xxxxxxxxxxxxxxxxx' # こっちはLineNotifyのトークン
line_notify_api = 'https://notify-api.line.me/api/notify'

# 送信
payload = {'message': message}
headers = {'Authorization': 'Bearer ' + line_notify_token}
line_notify = requests.post(line_notify_api, data=payload, headers=headers)

あとはこのコードを定期的に実行するだけです。
私の場合は、さくらのVPSを契約しているので、cronで朝・昼・夕で定期実行しています。

まとめ

タスクを忘れないようにタスク管理ツールに登録したけど、そもそもタスク管理ツールを確認するのを忘れてしまう・・・
というのを防ぐことができました!
cronで自分で通知時間帯を調整することができるので、朝起きたときに1日のタスクを確認しておきたいとか、退社前に買い物を忘れないようにしたいとか、柔軟に対応できるのが魅力ですね。

7
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
14