今回の投稿背景
Microsoft Flowを使ってるけど、接続先コネクタの数が膨大っていうのはわかるけど
実際使ってみると・・・ってなったところを書いてみる
FaceAPIを例にお話しをしてみます。
FaceAPIコネクタのアクション数
まぁこれだけで大概のことは確かにできるんですよ。
ユーザ作成したりとか、顔登録したりとか
何歳だとか、性別とか笑顔率とか・・・
ただ、実際やりたいことってのは
顔認証だったり、感情だったりそういうことじゃないかなと思うのですが
FaceAPIコネクタにはそれが実装されていません。
なにより、FaceAPIコネクタに写真を渡すときは、予め格納している写真ファイルのURLしか指定できません。
FaceAPIのアクション数
FaceAPI自体は顔写真データの提供にURL指定だけでなく、Binalyでの提供も問題ないとしています。
また、顔認証にはIdentifyという機能があります。
結論
コネクタの種類はいっぱいあるけど、そのコネクタ元の機能が全部使えるとは限らないということ。
じゃあどうするのさ!
HTTPコネクタとJSON解析を使用しましょう。
※カスタムコネクタを作ればいいじゃないというお話は後ほど^^
HTTPコネクタ
FaceAPI の Idenifyを例にするとこんな感じ
IdentifyはPOSTする仕様なので、方法はPOSTを指定する
URIは使用するFaceAPIのリージョンにあったURIを指定する。
※この場合は東日本リージョン
ヘッダーはIdentifyの要求するRequest Headersに合わせて登録する。
クエリはIdentifyにはないけど、URIにオプション指定するやつがある場合はここに指定する。
本文にIndentifyが指定するJSONを記載する(動的アクション指定可能)
すると出力結果はJSONで返ってきます。が
こんな感じで返ってくるので、このままでは使えませんので、JSON解析を使用します。
JSON解析
ここでコンテンツにHTTPコネクタの本文を指定(結果のJSONは本文に入っている)して、スキーマを宣言すればそこに各結果が動的アクションとして宣言されます。
なお、スキーマを自分で宣言するのが難しい場合は、出力データからスキーマを自動生成することができるので活用ください。
カスタムコネクタ・・・
試しに登録してみたんですけどね・・・
正直いろいろめんどくさくて、HTTPコネクタつかったほうが楽って気がするのは私だけですかね^^;
APIのJSONそのまま投げることも確かにできるんですが、いろいろ再定義しないといけないとかあるので
ほんとめんどくさいっすあれ。
総括
Flowを使っていく中で、これもしたいけどコネクタがない!なんてことにぶつかることもあるかと思います。その時は、使用したいデータの生成元にAPIがあるかどうかを確認し、実際にFlowで取得可能かお試しすると、道が切り開けるかもしれません。
なにより大事なことは、あきらめない心 これはどんな仕事でも大事ですよね!