したいこと

日々のタスクを管理したいというよりも忘れがちな〇月に契約更新とかの数か月、数年先のタスクを管理したい

  • タスク管理
    • 完了/未完了を切り替え
    • 期日を指定
  • リマインダー機能
    • 昨日完了したタスク
    • 今日期日のタスク
    • 上記以外のタスク

今回使用するツール

  • タスク管理 シンプルで管理しやすい todoist を使用
  • リマインダー機能 slack の channel への通知を使用
    • google calendar
      • リマインダーが直前になる
      • todoist と連携可能だが「期日指定なし」が連携されない
    • integromat
      • サイトが英語のみ

integromat での todoist について

integromat から使用できる todoist の 「Search for a task」では以下の項目しか返ってこないため要件を満たせない

  • 足りない項目
    • サブタスクかどうか?
    • 期限の情報
[OUTPUT]
  Bundle 1: (Collection)
    Task ID: タスクID
    User ID: ユーザID
    Project ID: プロジェクトID
    Content: 内容
    Deleted: 削除されているかどうか(true/false)
    Archived: アーカイブされているかどうか(true/false)
    Completed: 完了されているかどうか(true/false)
    The ID of the assigned user: アサインされているユーザID
    Date created: 作成日時
    LabelsArray
      ラベル配列

そのため、todoist api を叩くことで実装する

手順

事前作業

各ツール(todoist, slack, integromat)の会員登録

各ツールの oauth の設定

  • slack slack api より設定

    • 「App Name」
      • 任意の名称を指定
    • 「Development Slack Workspace」
      • 使用するワークスペースを指定
    • 「OAuth & Permissions」>「Redirect URLs」
  • todoist Todoist App Management より設定

    • 「App display name」

      • 任意の名称を指定
    • 「App service URL」

      • 未指定
    • 「OAuth redirect URL」

      ※「Client ID」, 「Client Secret」をメモしておく ※今回は使用しない

todoist の API トークンのメモ

設定の「API トークン」をメモしておく

integromat の設定

  1. 「Dashboard」>「Create a new scenario」を選択

  2. 「What services do you want to integrate?」と表示されるため「Continue >」を押下

  3. 表示された画面中央の「時計」アイコンを押下して以下を指定

    [毎日9:00 に実行する]

    • 「Schedule setting」
      • 「Run scenario:」
        • 「Every day」
      • 「Time」
        • 9:00
  4. 表示された画面中央の「?」アイコンを押下して「http」を選択して以下を指定

    [api を設定]

  5. 「+」アイコンを押下後「slack」を選択して以下を指定

  • 「create a message」
    • 「Connection」
      • 「Connection name」
        • 任意の接続名
      • 「Client ID」
        • 事前作業でメモした「Client ID」を指定
      • 「Client secret」
        • 事前作業でメモした「Client secret」を指定
    • 「Where to send the message」
      • to a selected channel
    • 「Channel」
      • メッセージを投稿したいチャネルを指定
    • 「Text」
      • 投稿したいメッセージを指定
    • 「Show advanced settings」
      • チェックを入れる

TODO

  • operation を使いすぎなためAPIの戻り値を配列化してメッセージを構築するようにする