22
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iOS ショートカットと Power AutomateでヘルスケアデータをSharePointに保存する

Posted at

「iOSに入っているヘルスケアデータで、Office 365使ってなにか遊びたい!」

例えばBIしたり、アプリ作ったり、そういうことがOffice 365、もといPower Platformでは可能なのですが、いかんせん、iOSのヘルスケアデータってほかのネイティブアプリくらいからしか取得できないんです。

しかし、iOSには、ショートカットというクライアントで動作するワークフローアプリが用意されています。
これを利用すると、写真の加工だったり、端末の情報、インストール済みのアプリの持っている情報を利用して、自動的にアクションを実行させることができます。もちろんヘルスケアデータにもアクセスできます。

ということで、今回は **「iOSショートカットとPower Automateを利用してヘルスケアデータをSharePointのリストに保存する」**ところまでを紹介します。

全体の概要はこんな感じです。
image.png

ショートカットに不慣れな場合に備えて、最後にリンクを用意していますので、そこからダウンロードしてください。

※iOSショートカットの詳細については公式のユーザーガイドを参照してください。

ショートカット側

まずはデータを取得するためのショートカットです。
ここでは例として、歩数の情報を、1時間ごとにまとめて、1日分(実行の前の日分)を送信するパターンを考えます。

やっていること

ステップが長いですが、やっているのは・・・

  1. 前の日の日付を計算
  2. ヘルスケアデータから、歩数を、前の日~今日の区間で取得
  3. 2の取得結果でForループ
  • 開始日をループの対象から取得
  • 変数にいったん格納
  • 値(歩数)をループの対象から取得
  • JSON風に、テキストを生成
  1. ループの結果をカンマ区切りで結合
  2. 一回確認
  3. HTTPのPOSTで、Power AutomateのURLに向かってデータを送信

という流れです。
全体のスクリーンショットを参考にしていただければと思うのですが、はまりポイントは、ループ内の開始日です。
これは何もフォーマットしないと、yyyy/MM/dd HH:mm みたいな形式なのですが、時間単位でまとめているのにも関わらず、mmの部分が00ではないデータがあります。
ヘルスケア側が保存したタイミングだと思うので、この仕様はあきらめて、フォーマットで回避します。
20200118_141549000_iOS.jpg

実際に結合済みのテキストをQuickLookで確認してみると、
20200118_151240000_iOS.jpg
このように、期待どおりの結合結果になっていました。
あとはPOSTするときに[]でくくって、Array形式の文字列にします。

長い全体のスクショ

このような感じです。iPhoneでこれを作るのは結構大変ですが、入力は候補が出てくるので、ほとんどタイピングせずに済みます。
最後のネットワークのURLはPower Automate側で紹介します。

EntireFlow.jpg

Power Automate側

Power Automate側は非常にシンプルです。
HTTPリクエストの受信をトリガーとして、受け取ったsamplesを文字列からjson配列に変換。
変換結果のjsonをパースして、あとはすべてのアイテムをSharePointに格納すれば終わりです。
Automate.png
iOSショートカットで最後にPOSTする先のURLは、Power Automate側のトリガーにあるURLを指定しています。
パースしている部分のスキーマも単純で、この場合、日付と歩数しかないので、以下のようになります。

parse.json
{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "date": {
                "type": "string"
            },
            "value": {
                "type": "string"
            }
        },
        "required": [
            "date",
            "value"
        ]
    }
}

おわり

無事iOSショートカットとPower Automateという2つの異なるワークフロー製品(?)を連動させて、端末内の取り出しにくいデータをクラウドに持ってこれました。
image.png

このようにそれぞれの特徴をいかせればもっと面白い使い方ができるかもしれません。

ショートカットはこちらからどうぞ

※公式のギャラリー以外からショートカットを取り込む場合には、設定から、ショートカットの設定を変更してください。
20200118_152540000_iOS.jpg

22
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?