Power Platform Diet with "one punch man" method①Fitbit API連携

こんにちはあきらです。

今回は兼ねてよりやってみたかったフィットネススコア集計の自動化をやってみました。

そしてそしてもう一つやってみたかった…

「ワンパンマンダイエット!」

こちらをPower Platformでやってみようと思います。

 

これをやるためにですね。

なんと15㎏太りました!

「阿呆じゃないのか…」と思った人、間違ってないですよ。

優秀な脳みそを作ってくれた両親に感謝するために帰省しては?

 

以前下の動画を見て、やってみたいなーとぼんやり思っていたんですが、

 

されど私はPower Platformer…

どうせなら掛け合わせたいなぁと思い立つこと、半年くらい。

 

やっと準備ができ、そうです。

あとPower BI作ったら多分自動集計できるはず。

 

準備するもの

まずはどこの誤家庭にもある以下を準備ください。

  • AI Builder
  • Power Automate
  • Power BI
  • Dataverse
  • MS365のExcel on-line
  • 任天堂switchとリングフィットアドベンチャー
  • FitbitのアカウントとFitbit スマートウオッチ
  • WithingsのアカウントとWithingsの体組成計

取得した値

今回ノリノリで取得した値は以下となります。

  • Withings:体重/体脂肪率/BMI
  • Fitbit:走行距離/平均速度/走破時間/消費カロリー
  • ringfitadventure:スクワット系回数/腕立て系回数/腹筋系回数
  • msn天気:運動時の天気

(誰か有識者がうっかりこんなところに迷い込んだら、摂取カロリー取得方法を教えてください。)

全体flow

ワンパンマンって記録していくの面倒臭いので、

全部運動したら勝手にデータ取得して勝手に公開しやがれってんだ!

っていうflowをつくるわけですね。

最終的に全世界に公開、そうです山里さんがビックリするくらいのMです。

f:id:hanakuso365:20210711011232p:plain

 

ワイが買ったものは以下(商品リンクとか貼って、アフィ収入ゲットしちゃうぞー)

Fitbit

Fitbit Versa 2 Alexa搭載 スマートウォッチ Stone/Mist Grey L/S サイズ [日本正規品] FB507GYSR-FRCJK

 

switch/リングフィット

Nintendo Switch 本体 (ニンテンドースイッチ) Joy-Con(L) ネオンブルー/(R) ネオンレッド+リングフィット アドベンチャー -Switch(【Amazon.co.jp限定】オリジナルクリアボトル 同梱)+【任天堂ライセンス商品】Nintendo Switch専用液晶保護フィルム 多機能

 

Withings/体重計

Withings Body + フランス生まれのスマート体重計 ホワイト Wi-Fi/Bluetooth対応 体組成計 【日本正規代理店品】 WBS05-WHITE-ALL-JP

 

AI Builderのビルド

Power Apps開きまして、「AI Builder」→「ビルド」→「フォーム処理」

f:id:hanakuso365:20210711004308p:plain

テキトーに名前を付けます。

f:id:hanakuso365:20210711004417p:plain

「追加」から、あとでリングフィットのリザルトから取得したい内容を変数化(?)します→「追加」

f:id:hanakuso365:20210711004655p:plain

 

「新しいCollection」→「collection選択」→ring fit adventureのリザルト画像テキトーに5枚用意してアップ→「分析」

 

f:id:hanakuso365:20210711004959p:plain

 

 

分析がはじまる・・・

 

 

f:id:hanakuso365:20210711005434p:plain

 

 

該当している項目を先ほど作成したfieldにマッピング→「次へ」

(コレクション内の全ての画像に対して行ってください)

ワイは毎回同じメニューなので楽勝

f:id:hanakuso365:20210711005122p:plain

 

次の画面なったら「トレーニングする」

f:id:hanakuso365:20210711005657p:plain

 

なんか勝手にトレーニング(?)してくれます。

AIの最適化みたいなもんでしょう、しらんけど。

f:id:hanakuso365:20210711005736p:plain

 

終わったら公開を忘れずに!

f:id:hanakuso365:20210711005848p:plain

リングフィットアドベンチャーのリザルトをTwitterから取得

リザルトは運動した後にリングフィットで出るんで、キャプチャしてTwitterにでも流しといてください。

↓こんなやつ(calorieとか欲しければストーリーモードの方の終了時のキャプチャ)

f:id:hanakuso365:20210711012133j:plain

アルバムからSNS連携すればSNSに流せます。

 

流したらPower AutomateのTwitterの検索アクションで

ハッシュタグと自分のユーザー名と取得日時でもsearchテキストに置いてあげれば、取得数1で取ってこれます。

詳しくはこちら↓

Twitter(ツイッター)の検索コマンド全22選 日付やアカウントを指定して探す -Appliv TOPICS

 

f:id:hanakuso365:20210711012422p:plain

 

そしてそして

「メディアURL」っていう項目を「HTTP」actionでGET

→AI Builderアクションでファイル種類選択してHTTPの本文とってこれれば完成

f:id:hanakuso365:20210711012742p:plain

 

テストしてみるとvalueをとってこれたのがわかります。

f:id:hanakuso365:20210711012911p:plain

Fitbit APIを利用したfitness scoreの取得

こちらはほとんど友人のよーよんさんが書いてくれました。

優しいナイスガイですホントに。

サイト行って広告収入落としてあげてください。

Fitbit API使ってアクティビティを取得しちゃおう! - 業務ハックLab (hatenablog.com)

 

一番最後にGETするとき、

https://api.fitbit.com/1/user/-/activities/date/「日付」.json

だと、activityの履歴を取れます。

 

https://api.fitbit.com/1/user/-/body/log/weight/date/「日付」.json

だと、体重やBMIなどの身体Dataが取れます。

 

両方取得したい人は二回GETする必要があると思いますので、上記のよーよんさんのリンクの最後にもう一度GET→JSONの取り出しってやれば取得可能です。

リフレッシュトークンだけきちんと更新してあげてください。

 

Withings とFitbitの連携

一応WithingsもAPI公開してるんですが、

accessトークンをURLから取得→加工→PowerShellでcurlするまでの導線がクッソ長い上に、なんか知らんけど保持時間が30秒しかないという鬼畜仕様なので、直接とってくるのはめんどくさくなった

 

なのでFitbitと連携してないか調べてみた。

以下リンクからFitbitからWithingsの値の取得が可能です。

 

www.fitbit.com

Dataverseへの保存

あとはHTTPアクションでGETしまくればいいですね。

ついでにMSNアクションとかで天気取ってきて、「雨の日だからやっぱり遅いなぁ」とかって言い訳を用意してあげましょう。

最後にDataverseのアクションでDataverseの「行の追加」アクションで取得してあげたらいいです。

 

注意点まとめとこう、うん。

  • Fitbitから取得した値

「JSONの解析」から値を取得すると、恐らくdistance、calorieあたりは滅茶苦茶項目がでてきます。

distanceは一番上の値

消費カロリーはactivitycalories

走った時間はveryActiveMinutesで取得できますん

 

  • AI Builderから取得した値

なんか色んな「value」がありますが、

(作ったfield名)valueって名前の値をとってくればOKっす。

 

Next Step

次はPower BIを弄ってreportを全世界に公開するんだ!

ぞくぞくするね!

みんな!応援とか叱咤とか激励とか罵倒とか暴言とか猥談とかまってるぜ!

AIBuilderおもしれええええええ(高いけど)