🍇
Power Automate Desktop で HTTP 要求の応答から値を取り出す方法
カスタムオブジェクトを使う
はじめに
以前、HTTP で Web サービスを呼び出したときの応答から、「テキストのトリミング」で値を取り出す方法を書きました。もっと良い方法があるのでまた書きます。
以前はこんな内容を書きました
WebServiceResponseHeaders から、「テキストのトリミング」でメッセージ ID を取り出します。
| パラメーター | 値 |
|---|---|
| 元のテキスト | %WebServiceResponseHeaders[8]% |
| モード | 指定された 2 つのフラグの間にあるテキストを取得する |
| 開始フラグ | messages(' |
| 終了フラグ | ') |
Power Automate Desktop でメール 下書きメッセージを作成する
Power Automate Desktop でメール メッセージに添付ファイルを追加する
今見るといまいちでした。良くないですね。
今回紹介するのはこちら
%WebServiceResponseHeaders%ではなく、%WebServiceResponse%を使います。

デバッグ実行して、返ってくる値を確認します。

そのままでは見づらかった返り値が、JSON をカスタムオブジェクトに変換すると変数値ビューアーから見やすくなりました。
値を確認し、変数名.名前のような書き方で
%JsonAsCustomObject.id%みたいに記述して取り出します。
変数の設定アクションに入れて実行して、うまくいくか確認してみます。

欲しい値がそのまま取れました。(画像ナシ)
今回のコード
Variables.ConvertJsonToCustomObject Json: WebServiceResponse CustomObject=> JsonAsCustomObject
以前のコード
Text.CropText.CropTextBetweenFlags Text: WebServiceResponseHeaders[8] FromFlag: $'''messages(\'''' ToFlag: $'''\')''' IgnoreCase: False CroppedText=> CroppedText IsFlagFound=> IsFlagFound
おわりに
文字列でわちゃわちゃしなくて良いだけでもこっちにする理由は十分ですね。
フローを見ても分かりやすいと思います。
Discussion