ADVERTISEMENT

【Power Automate】HTTPアクションで困った時の入力値と条件分岐の直し方

【Power Automate】HTTPアクションで困った時の入力値と条件分岐の直し方
🛡️ 超解決

Power AutomateでHTTPアクションを使うと、想定外の応答やエラーが発生してフローが中断されることがあります。特に、入力値の誤りや条件分岐の設定ミスが原因であるケースがほとんどです。この記事では、HTTPアクションのトラブルシューティングに必要な入力値の確認手順と、応答コードや応答本文に基づいた条件分岐の修正方法を具体例を交えて解説します。適切な切り分けを行い、迅速に問題を解決できるようになることを目指します。

【要点】この記事で確認すること

  • 最初に見る場所: HTTPアクションのプロパティで設定したURL、メソッド、ヘッダー、本文を入念にチェックします。特に、動的コンテンツの参照ミスや改行の有無が原因になりやすいため、エディター上で実際の値が想定通りか確認してください。
  • 切り分けの軸: エラーが「認証」によるものか、それとも「リクエストの形式(JSONの構文、エンコードなど)」によるものかを、応答ステータスコードと応答メッセージから判断します。さらに、Power Automate側の動作と実際のAPIの仕様との差異も考慮します。
  • 注意点: 会社PCで利用している場合、HTTPアクションで使うコネクタの設定変更(カスタムコネクタの作成など)は管理者権限が必要です。また、フロー内で秘密情報(APIキーなど)を直接記述するのは避け、セキュリティポリシーに従ってください。

ADVERTISEMENT

1. HTTPアクションのエラー原因を切り分ける前に

HTTPアクションでエラーが発生した場合、まずは「リクエストの問題」と「レスポンスの解釈の問題」に分けて考えましょう。リクエストの問題とは、HTTPアクションが送信するデータの形式や内容がAPIの仕様と合っていないことです。一方、レスポンスの解釈の問題とは、応答ステータスコードや応答本文を条件分岐で適切に評価できていないことを指します。この二つを混同すると、誤った修正を加えることになります。

実際に多いのは、例えば「URLに余分なスペースが入っている」「ヘッダーのContent-Typeが間違っている」「JSON本文のキー名がAPIドキュメントと異なる」といった初歩的な入力ミスです。また、Power Automateの動的コンテンツを挿入した際に、値が空になるケースや意図しない改行が含まれるケースもあります。まずはこれらの確認から始めましょう。

1.1 使用するツールと事前準備

トラブルシューティングを効率的に行うために、以下のツールや情報を準備してください。

  • APIの公式ドキュメント(リクエスト例、必須パラメータ、認証方式)
  • Power Automateのフロー実行履歴(生のHTTPリクエストとレスポンスを確認するため)
  • 外部のHTTPクライアント(PostmanやThunder Clientなど)で正常応答を確認できるテスト環境

これらの準備がないままフローを修正すると、何度も実行とエラーを繰り返すことになります。特に、外部のHTTPクライアントで事前にAPIの動作を確認しておくと、Power Automate特有の問題なのか、APIそのものの問題なのかを切り分けやすくなります。

2. 入力値の設定ミスをチェックする(URL・ヘッダー・本文)

HTTPアクションのプロパティ画面で設定する各フィールドには、入力値の誤りが潜んでいることがあります。URLメソッドヘッダークエリ本文のすべてをチェックしてください。以下に代表的な確認ポイントをまとめます。

2.1 URLとメソッドの確認手順

  1. URLの末尾に不要なスラッシュやスペースが含まれていないか確認します。Power Automateのエディターでは見落としがちな半角スペースや改行が、実際のリクエストに含まれることがあります。
  2. プロトコル(https://)が正しいか、ポート番号が必要なAPIの場合は明示的に指定しているかを確認します。
  3. HTTPメソッド(GET、POST、PUT、DELETEなど)がAPIの仕様と合っているか確認します。例えば、リソースの作成にはPOST、更新にはPUTを使用するなど、メソッドを誤るとエラーになります。
  4. 動的コンテンツを含むURLの場合、式ビルダーを使って実際の値を事前に検証します。例えばconcat関数で結合する際に、値が空でないことを確認してください。
  5. URLエンコードが必要なパラメータ(日本語や記号を含む)にはencodeURIComponent関数を使用することを推奨します。Power Automateは自動エンコードしないため、手動で行う必要があります。

2.2 ヘッダーと本文のよくある間違い

ヘッダーではContent-Typeが最も重要です。JSONを送信する場合はapplication/json、フォームデータの場合はapplication/x-www-form-urlencodedまたはmultipart/form-dataを設定します。また、認証トークンが必要なAPIではAuthorizationヘッダーにBearerトークンを正しく指定しているか確認してください。秘密情報は直接入力せず、Azure Key Vaultや環境変数を利用することをお勧めします。

本文(Body)のチェックでは、JSONの構文エラーが頻発します。Power AutomateのエディターはJSONのバリデーションをリアルタイムには行わないため、フロー実行時にエラーが発生します。以下の点に注意してください。

  • JSONのキー名と値のクォーテーションが正しいか(ダブルクォーテーションを使用)
  • 配列やオブジェクトのカンマが不足していないか
  • 動的コンテンツを挿入したとき、値として文字列が期待される場所にオブジェクトが入っていないか

これらの問題は、外部のJSONバリデーターを使って事前にチェックすることで防げます。

確認項目 よくある間違い 正しい例
URL スペースや改行、間違ったプロトコル https://api.example.com/v1/users
メソッド POSTすべきところにGETを使用 POST
ヘッダー Content-Typeの欠落、Authorizationトークンの形式誤り Content-Type: application/json; Authorization: Bearer <token>
本文(JSON) キーのクォーテーション漏れ、値の型不整合 {“name”: “John”, “age”: 30}

3. 認証・権限に関するよくある失敗と対処法

HTTPアクションでは、認証方式の設定を誤ると「401 Unauthorized」や「403 Forbidden」が返されます。Power Automateでは以下の認証タイプを選択できます。

  • 基本認証:ユーザー名とパスワードをBase64エンコードして送信。多くのAPIでは非推奨。
  • Windows認証:Active Directory環境で使用。オンプレミスの内部API向け。
  • 証明書ベース:クライアント証明書を使用。カスタムコネクタが必要な場合あり。
  • OAuth 2.0:アクセストークンを取得して送信。Azure AD認証が一般的。
  • APIキー:ヘッダーまたはクエリパラメータにキーを埋め込む。

よくある失敗は、OAuth 2.0の設定で「テナント」「クライアントID」「クライアントシークレット」を間違えたり、アクセストークンを更新するロジックを実装していないためにトークン切れでエラーになることです。また、APIキーの場合は、キーが有効であること、ヘッダー名が仕様と合っていることを確認してください。

もし管理者権限が必要な設定(カスタムコネクタの作成やAzure ADアプリの登録)がある場合は、IT部門に依頼してから作業を進めましょう。社内ポリシーで許可されていない認証方式を使うと、フローがブロックされる可能性があります。

4. 条件分岐の直し方(応答コード・応答本文の解析)

HTTPアクションの応答を条件分岐で制御する場合、多くの人は応答コードのみで判断しますが、応答本文に含まれるエラーメッセージや詳細コードも併用するとより精密な制御が可能です。例えば、APIが「200 OK」を返しても、本文内に{"status": "error"}が含まれていることがあります。このような場合は、条件分岐で応答本文のJSONパスを評価する必要があります。

4.1 応答コードを使った条件分岐の設定手順

  1. HTTPアクションの「条件」コントロールを追加します。
  2. 左側の動的コンテンツから「ステータスコード」を選択します。
  3. 演算子を選択します。成功時のみ処理を続行する場合は「が次の値に等しい」で「200」を設定します。
  4. 複数のステータスコードを扱う場合は「または」を使って条件を追加します(例:200または201)。
  5. エラー処理の場合、「ステータスコードが次の値以上」や「次の値と等しくない」を使って、400番台や500番台をまとめてキャッチします。

4.2 応答本文を使った高度な条件分岐

応答本文がJSON形式の場合、その中の特定プロパティを条件に使えます。例えば、APIがエラー時に{"error": {"code": "INVALID_REQUEST"}}を返すなら、条件で「body(‘HTTP’)?[‘error’]?[‘code’]」が「INVALID_REQUEST」に等しいかどうかを評価します。Power Automateでは、応答本文の解析に「Parse JSON」アクションを使うと、プロパティを動的コンテンツとして直接参照できるようになります。

注意点として、応答本文が空の場合や解析できない形式の場合は、Parse JSONアクションがエラーになります。そのため、事前にステータスコードで正常応答かどうかを確認し、条件分岐の中でParse JSONを実行するようにフローを組むと安定します。

5. 失敗パターン別の対応と管理者への確認ポイント

実際によくある失敗パターンとその修正方法をまとめます。以下の表を参考に、自分の状況に当てはまるものを探してください。

パターン 現象 主な原因 修正方法
認証エラー 401 Unauthorized APIキーやトークンの指定ミス、期限切れ 認証情報を再生成し、Power Automateの設定を更新。OAuth2.0の場合はリフレッシュトークンを使用する。
400 Bad Request リクエスト本文の形式エラー JSONの構文ミス、必須パラメータ欠落 外部ツールでJSONをバリデートし、API仕様と照合。動的コンテンツの値が空でないか確認。
404 Not Found URLが存在しない エンドポイントの誤り、パスのタイプミス URLを再確認し、APIドキュメントのサンプルと一字一句合わせる。
500 Internal Server Error サーバー側の不具合 APIの障害、またはリクエストの不備でサーバーが処理不能 リクエスト内容を簡素化して再試行。管理者にAPIの稼働状況を確認。

管理者に確認すべき情報としては、以下のようなものがあります。

  • ターゲットAPIのアクセス許可(IP制限、認証要件)
  • カスタムコネクタが必要かどうか、およびその登録手順
  • 社内ネットワークのプロキシ設定やファイアウォールルール
  • Azure ADアプリのリダイレクトURIやAPIのスコープ設定

これらの確認を事前に行うことで、無駄な試行錯誤を減らせます。

6. よくある質問(FAQ)

Q1: HTTPアクションで「指定されたホストはありません」というエラーが出ます。

URLが正しくないか、DNS解決に失敗しています。URLのスペルミスや、社内ネットワークからインターネットにアクセスできない環境では、プロキシ設定やオンプレミスデータゲートウェイの構成が必要です。管理者に問い合わせてください。

Q2: 応答コード200なのに、後続のアクションでエラーになります。

応答本文の解析が失敗している可能性があります。Parse JSONアクションでスキーマが合っているか確認してください。また、応答本文が空の場合は、条件分岐で空チェックを行うか、デフォルト値を設定します。

Q3: 認証方式をOAuth 2.0にしたら、アクセストークンの取得に失敗します。

テナントID、クライアントID、クライアントシークレットが正しいか確認してください。また、Azure ADアプリにAPIの権限が付与されているか、管理者に委任されているかを確認します。

7. まとめ

HTTPアクションのトラブルシューティングでは、まず入力値の丁寧な確認が不可欠です。URL、メソッド、ヘッダー、本文に潜む小さなミスが大きなエラーにつながります。また、応答コードや応答本文を正しく条件分岐に反映させることで、エラー処理の精度が向上します。認証関連の問題は管理者に早めに相談し、セキュリティポリシーに沿った設定を心がけてください。これらのポイントを押さえることで、Power AutomateのHTTPアクションを安定して運用できるようになります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT