HabitRPGと万歩計アプリFitbitを連携する

はじめに

日本でもFitbit Charge HRが発売されました。 その記念(?)にFitbitとHabitRPGを連携する方法を紹介します。 Fitbitのデバイスがなくても、Fitbitスマホアプリでも大丈夫です。

「Fitbitで一日の目標歩数をクリアしたら、HabitRPGの経験値が上がる」という仕組みを作ってみます。

準備するもの

仕組み

こんな感じです。

  1. Fitbitで一日の目標歩数をクリアする

  2. クリアしたことをトリガーにしてIFTTTでGoogle Spreadsheetに追記

  3. Google Spreadsheetへの追記をトリガーにしてZapeirでHabitRPGのHTTP POST呼び出し

  4. HabitRPGで経験値が上がる

仕組みづくり

上の仕組みの2と3を作る必要があります。4についても説明します。

一日の目標歩数をクリアしたらGoogle Spreadsheetに追記されるようにする(via IFTTT)

以下の公開RecipeをIFTTTで登録します。 IFTTT Recipe: If daily step goal achieved, then add row to spreadsheet in Google Drive. connects fitbit to google-drive

Recipeを登録する段階で、Google DriveやFitbitについてアクティベートが求められます。 登録が終わったら、歩いて目標をクリアして、Google Driveに新しいSpreadsheetが作成されることを確認しましょう。

外部からHabitRPGの経験値を上げるには

HabitRPGのあるURLをPOSTで呼ぶことで、指定したHabitが実行されたことを通知できます。 詳しくは https://habitrpg.com/static/api が参考になります。リンク先にあるように、curlで叩いて確認するとより納得できると思います。

肝心のGoogle Spreadsheetの追記からPOST発行へつなげるには、Zapierを使います。

Google Spreadsheetが追記されたらHTTP POST呼び出す(via zapier)

Zapierとは?

何かイベントが発生したときに何かアクションを起こすことができるウェブサービスです。 こちらの記事が分かりやすいです。 nulab-inc.com

Zapierのアカウント登録をこちら(http://zpr.io/pVqh)からしてもらうと、あなたの(私のも)月間可能Task数が100増えるそうなので、よろしければ。 今回 IFTTTだけでなくZapierも併用しているのは、標準のIFTTTでは任意のURLにPOSTリクエストが発行できないからです。 一方でZapierだけでなくIFTTTも使っているのは、ZapierがFitbitに対応していないためです。面倒ですね...

Zapを作る

ZapはIFTTTでのRecipeのようなものです。IFTTTのRecipeと違って、作ったZapは共有できないようなので、以下の流れで作ってください。

1 大枠を指定する

Zapierにログインして Make a Zap! を選択します。 "WHEN THIS HAPPENS..."に Google Sheets と Updated Spreadsheet Rowを、 "...DO THIS"に Webhook と POST を選択します。 f:id:nkn_khr:20150429164534p:plain

2 Googleアカウントを登録する

IFTTTに登録したものと同じGoogleアカウントを登録します。 f:id:nkn_khr:20150429164738p:plain

3 WEBHOOKについてはここでは指定することはありません

4 対象のシートを指定します。

前に紹介したIFTTTのRecipeをそのまま使った場合には、SpreadsheetにDaily step goal achievedを、Worksheetにシート1を指定します。 f:id:nkn_khr:20150429165601p:plain

5 POSTする内容を定義します。

まずURLを指定します。https://habitrpg.com/api/v2/user/tasks/walk/up です。 ここでの "walk" がHabit名です。 存在しない場合は自動的に生成されるので事前に作る必要はありません。 f:id:nkn_khr:20150429194555p:plain

次にヘッダを定義します。(それ以外のパラメータは編集する必要はありません。) ヘッダとしてx-api-userとx-api-keyを、各valueに自分のUserIDとAPI Tokenを入力します。 値はHabitRPGのAPIページから確認してください。 f:id:nkn_khr:20150429200701p:plain

6 テストをクリックします。

このあとHabitRPGをリロードして、新しくwalkが追加されることを確認してください。 f:id:nkn_khr:20150429201440p:plain

もしエラーが出たら

  • WEBHOOKトリガーまで至っていない場合は、Spreadsheet側を手で更新して新しい行を追加してみてください。

  • WEBHOOKでエラーになる場合は、ヘッダの値やURLが間違っていないか確認してください。

7 Zapに名前を付けて保存して終了です。

まとめ

IFTTTとZapierとGoogle Spreadsheetを使って、FitbitとHabitRPGを連携させました。

現実世界のタスクをロールプレイングゲームにして遊びながらこなせるWebサービス「HabitRPG」 - DNA

万歩計アプリやそういう体を動かす系アプリなんかとの連携が今後は期待できそうです。

というわけで期待には応えられたんではないかと思います。

今回の方法を応用すれば、睡眠時間を十分摂っていればUp、足りなければDown、といったこともできそうです。 また、IFTTTがJawboneWithingsに対応していますので UPやWithings Activitéを使っている人も、似た方法で連携させられるかと思います。

HabitRPGで日本語が選択できるようになりました

ブログで公開されたように、HabitRPGで日本語が選択できるようになりました。

ブラウザの言語設定で日本語が優先されていれば、何も設定せずとも出力メッセージが日本語になると思います。

もしならなければ、歯車アイコンから Site > Language で「日本語」を選択してください。 f:id:nkn_khr:20150428221809p:plain

日本語化されたメッセージがいまいちしっくり来ない人は、Englishに戻しましょう。 むしろ翻訳プロジェクトに参加して翻訳作業に加わるのもよいかもしれません。

入門HabitRPG〜チュートリアルを終えるまで〜

HabitRPGの紹介

HabitRPGは習慣化したい事項(ジョギングなど)やToDOを登録し 消化することで自分のアバターを育てるゲーミフィケーションサービスです。

ライフハッカー(RPGを攻略するかのごとくToDoリストを消化できるサービス「HabitRPG」 | ライフハッカー[日本版])や GIGAZINE(RPGをプレイする感覚でタスクを管理し習慣づけを成功させる「HabitRPG」 - GIGAZINE)でも 紹介されているため、名前を聞いたことがある人も少なくないかとおもいます。

ただ、Twitterなどで検索してみるかぎり、実際に日本人でHabitRPGを楽しんでいる人は多くはないようです。 これはメッセージが(2015年4月19日の段階では)日本語化されておらず、使い方が分かりにくい点が大きいかと思います。 特に個人的には、ログイン直後のチュートリアルで面食らいました。適当にNextやら何やらをクリックしていたら いきなり本番に放り出されて、何をやっていいのやらと感じたことを覚えています。 (もちろん自分が悪いんですが...)

少しでも障壁を下げるため、HabitRPGのアカウント作成からチュートリアルを終えるところまでを解説します。

アカウント作成

まず http://habitrpg.com/ へアクセスして Play for freeをクリックします。 f:id:nkn_khr:20150419193536p:plain

login/register画面が出るので、Registerをクリックします。 f:id:nkn_khr:20150419193853p:plain

ユーザ名,メールアドレス,パスワードを入力してRegisterをクリックします。 f:id:nkn_khr:20150419195029p:plain

チュートリアル

初回ログインなのでチュートリアルがはじまります。 「Habiticaへようこそ!これがあなたのToDoリストです。チェックオフしてください」 "Join HabitRPG" (HabitRPGを始める)というToDOタスクがあらかじめ登録されています。 いまあなたはHabitRPGを始めたわけですから、クリアです。矢印の部分を部分をクリックして「実施済み」にしてください。 f:id:nkn_khr:20150419195644p:plain

タスクを実施済みにすると経験値やゴールドがたまります。Nextをクリックしてください。 f:id:nkn_khr:20150419200222p:plain

Dailiesは毎日1回行うタスクです。いわゆる日課ですね。 入力したら右のプラス記号をクリックすることで追加できます。 何か一つ入力すると次に進みます。ここでは「歯磨き」と入力しています。 この例で分かるように、出てくるメッセージは英語ですが、 入力に日本語が使えます!

f:id:nkn_khr:20150419200930p:plain

Dailiesは毎日リセットされ未実施状態になります。Nextをクリックしてください。 f:id:nkn_khr:20150419201215p:plain

画面上部の赤いバーが体力ゲージです。深夜0時までにその日のDailiesを実施済みにしないとダメージを受けて体力ゲージが減ります。Nextをクリックしてください

f:id:nkn_khr:20150419201423p:plain

Habitsは習慣を登録します。良い習慣がプラス、悪い習慣がマイナス、どちらにもなる習慣はプラスマイナスの欄に入力します。 チュートリアルでは何を入力してもよいのですが、ここでは良い習慣にします。 "Good Habit"の欄の鉛筆アイコンをクリックします。 f:id:nkn_khr:20150419203458p:plain

例として「一駅ぶん歩く」とします。あくまでも例です! チェックマークをクリックしてセーブするとチュートリアルが進みます。

f:id:nkn_khr:20150419203824p:plain

良い習慣を実行すると経験値とゴールドがたまります。 悪い習慣を実行すると体力が減ります。 やってもいないのに嘘をついて「良い習慣」を連打しても、別にBANされないですし経験値もゴールドもざくざくたまりますが、 あとで空しくなるのでやらないほうがいいです。 f:id:nkn_khr:20150419204402p:plain

Rewardsではこれまで得たゴールドを使って武器などの装備を買います。 その他にも自分へのご褒美(ゲームを1時間する,おやつを食べるなど)を登録することもできます。 さっきToDoで得た1ゴールドで Training Sword(練習用の剣)を購入すると、チュートリアルが進みます。 f:id:nkn_khr:20150419205525p:plain

画面左上のキャラがあなたのアバターです。クリックすることでカスタマイズできます。 ここではアバターをクリックしてチュートリアルを進めてください。

f:id:nkn_khr:20150419205818p:plain

画面を下までスクロールさせて全ての項目を確認してください、と書いていますが あとでじっくりできますのでここでやる必要はありません。Nextをクリックしてチュートリアルを進めます。 f:id:nkn_khr:20150419210402p:plain

RPGらしく、パーティを組んだりチャットしたりギルドやチャレンジに参加したりできます。 そういえば日本語学習者のギルドを見つけて覗いてみたら、チャットでしりとりしててちょっと微笑ましかったです。 チュートリアルはこれで終わり。Finish Tourをクリックします。 f:id:nkn_khr:20150419211011p:plain

まとめ

HabitRPGのアカウント登録とチュートリアルを紹介しました。 あとはアバターをカスタマイズしたりDailiesに細かく日課を登録したりしてください。 HabitRPGはゲーム感覚でToDOや習慣化に取り組みたい人にはうってつけのサービスだと思います。