MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

HTTPトリガーでクエリパラメータを利用するには

ちょっと調べたけど情報なくて、手探りで発見したので、記録します。

Power Automateの「HTTP要求の受信時」のトリガーはその名前のとおり、フローに固有のURLにリクエストをすることで、フローが開始されるというものです。

普通のURLなので、「クエリパラメータ渡したいなー」と思いますよね。それを中で使って、処理を変更したり。格納する値変えたり。 探してみると、(Power Automate Ideas)https://powerusers.microsoft.com/t5/Power-Automate-Ideas/Get-the-query-parameters-from-HTTP-Request-trigger/idi-p/145513 にもあって、曰く「相対パスを使え」というものでした。

f:id:mofumofu_dance:20200422101123p:plain

ちょっと違うんですよね。。「検索かけたい」って言ってるのに、「ディレクトリ分けろ」って答えられたみたいな感じ。

解決方法

いつでも大事なのは、「とりあえずtrigger()を出力してみる」の精神です。トリガーの情報を含んでいる、一番大きい括りであるtrigger()を出力して、URLにパラメータをつけてみます。

f:id:mofumofu_dance:20200422101439p:plain

送るURLは

https://prod-67.westus.logic.azure.com:443/workflows/1xxxxxxxxxxxxxxx7/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=gj5VxxxxxxxxxxxPpgTg&name=Hiro&age=34

こんな感じで、最後に name=Hiro&age=34 をパラメータにつけています。

結果はというと...

f:id:mofumofu_dance:20200422102150p:plain

取れています!この値、実際にリクエストをするまで出てこないし、動的コンテンツにもありませんでした。 このクエリパラメータの利用方法はいたって簡単です。

「作成」アクションに以下の数式を入れてあげましょう。

triggerOutputs()?['queries']

今回は?['queries'] なことがとても重要です。これによって、パラメータがないときに、アクションがエラーになるのを防ぐことができます。

f:id:mofumofu_dance:20200422103034p:plain

おわり

ということで、とても便利なHTTP要求受信時のトリガーですが、無事クエリパラメータも渡せますし、後続処理で利用可能にできました。 ポイントは ?['queries'] です!