SlackとTodoistは連携機能がありますが、できることはタスクの追加くらいであまり多くありません。
本格的な操作をしようと思うとTodoistのAPIを使って操作する必要があります。

そこで今回は、SlackbotからTodoistを管理する方法を紹介します。

※PythonでのSlackbotの使い方については「SlackbotをPythonで作成しよう
Python版のTodoistのAPIの使い方についてはTodoistの情報をPythonで取得する

※API v8に対応したコードに修正中です。
API v8については「Todoist API v8の主な変更点と対応方法」をお読みください。

TodoistのAPIから取得できるタスクの内容

TodoistのAPIから取得できる情報は以下のものがあります。

id タスクのid
project_id プロジェクトのID
utc_date_time 時差を決める為の世界標準時間。日本時間に補正が必要
date_string 日本時間だが年がないのが欠点。たまに英語時間になる
content タスク名

Todositの今日のタスクをSlackbotから取得する方法

今日の予定を確認する方法については「SlackbotでTodoistの予定を確認する」にて詳しく説明しています。

Todositのタスクを完了済みにする方法

タスク名と日付から対象のタスクを見つけて完了済みにします。同じ日に同じタスク名を使うことはないという前提です。

タスクの時間はUTC時間で保存されているため、日本時間に補正してから比較する必要があります。
複数ヒットした場合は最初の予定のみを完了済みにします。

◆使用するファイル
・bot.py(起動ファイル)
・slackbot_settings.py(設定ファイル)
・todoistmodules.py(今回修正するファイル)
・botmodules.py(今回修正するファイル)

タスクを完了するコードの実装例は以下の通りです。

◆Todoistコードの修正(todoistmodules.py)

◆Slackコードの修正(botmodules.py)
Todoistの完了メソッドを呼び出して完了済みにします。

◆実行例
タスク一覧

タスク一覧から対象のタスクをコピーします。

◆「テスト1」を完了する例
タスクを完了済みにする

以上、SlackbotでTodoistのタスクを管理する方法でした。

Slackbot+PythonまとめTOP>>Slackbotの作り方マニュアル〜Python編〜