Habitica へ自動でタスク完了チェック Fitbit (その他いろいろ)

さいきんHabiticaというタスク管理のツールを使い始めた。
Habiticaはタスクをこなすとお金や経験値が手に入るRPGゲームのようなタスク管理ツール
詳しくはググってください
https://habitica.com/

これは達成したら自分でチェックを入れていくのだがFitbitで1日の目標を達成したら自動で
チェックしてほしいと思ったので色々試してみた。

  • ▪️必要なもの

- IFTTT
- Google Docs
- Zapier

▪️概要
1. IFTTTでFitbitの目標達成を引っ掛けてGoogleDocsの表計算に新規行を追加する
2. Zapier で GoogleDocsの新規行を定期監視してあれば、Habiticaのタスクに完了チェック

▪️詳細
1. IFTTTの設定
例.10000歩を達成
IFTTTの IFの中からFitbitを選択
その中から"Daily step goal achieved"を選ca
アクションはGoogle Driveを選択し"Add row to spreadsheet"を選択
こうすると、Fitbitで自分の設定した目標を達成すると指定したGoogleDriveのSpreadsheetに行が追加される
(今回はfitbitで10000を目標にしていると想定)

2. Zapierの設定
ZapierはIFTTTのWEB版のようなツール(詳しくはGoogkeで検索してください
ZapierでSpredsheetを監視して新しい行があればHabiticaのAPIを叩くというレシピを書きます。
- まずトリガーとしてSpredsheet(New Spreadsheet Row)を選択
- Edit Optionでは監視するSpredsheet と そのWorksheet(excelでいうところのBook)を選択
ここで注意が必要なのは、日本語でGoogleDrive利用していると、ここがシート1 がデフォルトになっているのですが、このままだとうまくいかないので、事前にWorksheetを"1"など半角文字だけにしておいてください。

  • これでトリガーの設定は完了
  • アクションには"WEBHOOK"を利用します。これでHabiticaのAPIを叩きます。
  • 今回は完了したタスクをチェック(厳密にはScore Up)させるので以下のAPIを利用します。
  • この項目はPOSTとというものを使うようなのでPOSTを選択
  • URLの欄に上記のURLを入れます。(この時TaskIDの部分には個別のIDを挿入します。調べ方は後述)
  • PayloadはJSONを選択
  • ページ後部のHeaderには以下の2つを入れてください
    • x-api-user 5fefXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    • x-api-key e52eXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
      • 後方のユニークIDはHabiticaのログイン後のページのAPIから確認できます。


これで完成

# TaskIDの調べ方
最近Habitica APIがV3になったらしくWEBにのってる今までの方法ではうまくいきませんでした。
TaskIDの以下の手順で調べます。

  • さきほどのZapierで適当なトリガーを作ってアクションまで進みます。
  • GETを選んで以下のURLを選択
  • testを実行するとGETした内容が出てきます。
  • その内容から自分で決めたタスク名を検索すると、その下のほうにUUIDの項目があると思います。
  • これがそのタスクの個別のIDです。


あとは自動的にIFTTTとZapierがよろしくやってくれるまずです。

この仕組みがあればIFTTTにある項目ならなんでもHabiticaでタスク管理できます。
私が追加しているのは、Spotifyで新しい曲をプレイリストに追加したらタスク完了とか、1日一回写真を撮ったらタスク完了とかやってます。