Power Appsの使い方

Power AppsとPower Automateの使い方やできることがわかるブログを目指しています。

Power Apps x Power Automate x FaceAPIで自動応答システムを作る

Ignite the tour tokyo用のデモアプリを作ってたらFaceAPIを使いたくなりまして、せっかくなのでまとめておきます。

 

FaceAPIについて

FaceAPICognitive Servicesの一機能です。顔の画像を送ると、人の顔の感情とか、性別年齢などを判別できるAPIです。使うのはお金がかかったりかからなかったりします。

今回は「画像(カメラ)に顔があるか?」を取得したくて使いました。

 

やりたいこと

Power Appsのアプリの前(PC,タブレットの前)に来たら、自動で応答させるような仕組みを作りたかった。

人が来たことを「顔がある」ことで確認して、あとはPower Appsなんやかんやする。

 

画像を取得してPower Automateに送る

カメラコントロールを設置して、StreamをPower Automate経由で送る形にしました。

OnStreamプロパティにFlowRunする関数を入れて数秒おきにコールする感じです。

f:id:botherntu:20191201094147p:plain

 

この方式だと、この仕組に使うコントロールはカメラコントロール1つのみで済みます。Good

StreamRateを変更しないとOnStreamは走らないので注意してください。

 

FaceAPIの叩き方

FaceAPIを叩く方法は大きく2種類あります。

標準で用意されているコネクタを使うか、HTTPコネクタを使用するかです。

この2つには明確な違いがあります。

 

前者はどこかのストレージに画像が保存されていないといけません。一度Blobストレージとか、Sharepointとかに保存しないとだめです。

 

後者は保存しなくてOKです。バイナリを使用して直接APIを叩けます。

無駄に保存とかしたくないので今回は後者にしました。

 

FaceAPIリソースを準備する

AzureにFaceAPIリソースを用意しましょう。たぶんサクッとできるはず。プランによってお金がかかるので注意してください。

用意できたら、Key1とエンドポイントをメモるかとっておくかしておきます。

 

Power Automateの実装 全体

全体はこんな感じになります。

f:id:botherntu:20191201093901p:plain

Power AppsからカメラのStreamを受け取って、バイナリに変換して、FaceAPI叩いて、結果を返す感じです。

 

バイナリ作成

作成のアクションを使用して、バイナリの変数を用意します。

上に[作成]アクションがありますが、単に引数を入れているだけなのであまり気にしないでください。

 

バイナリを作成するには関数dataUriToBinary()を使用します。

引数に動的なコンテンツから選択したPowerAppsの引数または上記の例ならoutputs('作成')を指定します。

f:id:botherntu:20191201093928p:plain

 

f:id:botherntu:20191201094023p:plain

FaceAPIを叩く

HTTPコネクタを使用します。

画像のように設定して、FaceAPIを叩くことができます。

f:id:botherntu:20191201094014p:plain

URIの隠れている部分はAzureリソースで確認したエンドポイントです。ご自身のものに入れ替えます。

エンドポイント+face/v1.0/detect と入力します。

Ocp-Apim-Subscription-keyもAzureリソースで確認したkey1を入力します。

本文には、作ったバイナリを入れます。

 

ここで一度実行します。

実行してうまく言ったら、出力内容をコピーしてJSONスキーマを作成します。

 

PowerAppsに結果を返す

アクションの追加で応答を検索して追加します。

本文HTTPコネクタの本文を入れ、詳細オプションの表示 > サンプルから生成 に上記の出力内容を貼り付けて、JSONスキーマを自動生成します。

f:id:botherntu:20191201094056p:plain

うまく行っていれば、これで完成です。PowerAppsにカメラ画像をFaceAPIで判定した結果が戻ります。

 

おわり

このようにかなりスッキリした手順で試すことができます。FaceAPIで遊ぶのは結構楽しいので、是非試してみてください。

 

宣伝

この仕組が入ったアプリをIgnite the tour tokyoでデモしますので、お暇がありましたら是非お越しください。

1日目午前中にBizAppsデモブースにいます。

会場でお会いしましょう!

Power Apps や Power Automate に関する仕事のご依頼は下記ページからお問い合わせください。
ZEE CitizenDevSupport