Jawbone UP の活動を Facebook に自動投稿するレシピを作ったよ
IFTTT って?
IFTTT はネット上のさまざまなサービスを連携させるためのサービスで、「あるサービスで何かが起こったときにあるサービスに何かをする」というアクションをとても簡単に作って自動化できます。トリガーとアクションの組み合わせをレシピと呼び、作ったレシピは他のユーザと共有することができます。詳しくは前回の記事を読んでください。
どんなレシピ?
今回作成したレシピは、Jawbone UP でのアクティビティを Facebook に自動投稿するものです。え? すでにたくさんあるって? そうなんですよ。すでに IFTTT には Jawbone UP と Facebook を連携するレシピがいくつも投稿されています。自分もしばらくはそれを使っていました。
でもね、イマイチなんです
どれもプレーンテキストだけの投稿でちょっと地味で味気ないんです。
なんでかって言うと、これは IFTTT から Facebook に投稿できる方式が3つしかなくて、
- プレーンテキスト
- URL による画像リンクと文章
- 画像をアップロードして文章を付ける
みんな 1. を使っているから。2. や 3. の形式で投稿するとなると画像が必要だけど IFTTT だけで画像を自由に作ることができない。
なんとかならないかな〜と思って酔っ払いながら知恵を絞ってなんとか画像を生成するレシピを作ってみました。IFTTT のレシピとして公開したので興味ある方は実際に使ってみてください。
工夫したところ
今回のレシピで工夫したところは、なんといっても画像を生成してから Facebook に投稿するということです。実際に投稿した画像はこんな感じになります。
どうでしょう? 文字だけよりちょっとステキじゃないですか? モテそうじゃないですか?
左から説明します。人型の数値はその日歩いた歩数です。実はこの部分はグラフになっていて、目標歩数と実績歩数に合わせて色が塗られます。頭のてっぺんまで赤くなると100%で目標達成!となります。人型の上の88%っていうのが達成率です。88%の左にあるスマイルマークは達成率に合わせて表情が変わります。5種類の表情がありますよ。
真ん中の炎の数値はアクティビティによって燃焼したカロリー。じっとしているときに消費されるカロリーは含まれていません。
一番右の道路マークの数値は歩いた距離です。日本語版のレシピは Km, 英語版のレシピは Miles になっています。
ちょっとした解説
全体の処理の流れをざっくり説明するための図を描いてみました。
この図で特徴的なのは、4から7のステップです。Facebook への投稿方法を前述の 3.画像をアップロードして文章を付ける を選んで、PHP スクリプトに アクティビティ結果を URL パラメータで送信、それを元に画像を生成して Facebook に渡しています。
具体的にはこんな感じでサーバにリクエストを出しています。
http://miyadi.net/test/jawbone_up/activity_graph.php?target=10000&steps={{TotalSteps}}&calories={{TotalCaloriesBurned}}&distance={{DistanceCoveredKM}}&unit=Km&date={{DateOfActivity}}
activity_graph.php に target, steps, calories, distance, unit, date パラメータを付けてリクエストを投げることで動的に画像を生成しています。ちなみに {{}} で括られた部分は Jawbone から送られてきた数値が入ります。この仕組み自体は何をいまさら超簡単じゃないかっ!って感じかもしれません。でも、PHP 使ってプログラム書いたの初めてなのでちょっと嬉しいんですよ。しかも他のサービスと連携しながら動かすのって普段 C++ や Java でローカルアプリ書いてるオッサンにとっては新しいことしてる感じがして若返っちゃうんです。
…って、ちょっと話がそれてきたので、いったん今日のところは切り上げて次回は activity_graph.php で何をしているかを偉そうに解説してみます。
今日はもう眠いし今週忙しいから自分のペースで気が向いたらですけど。。。
今回作ったレシピを使うにはコチラ
追記
PHP 側で何をしているかの解説を書きました。
はじめまして。
UPのデータをIFTTTを通じてFacebookに自動投稿
するレシピ、使わせて頂きました。ありがとうございます。
明日からUPの同期が楽しみです。
weblog244 さま
レシピがお役にたてば幸いです! ぜひご自身のアクティビティを facebook にグラフィカルに記録しちゃってください。
今後ともよろしくお願いいたします m(_ _)m