403 Forbiddenエラー
403 Forbiddenエラーは、コネクションがリクエストされたリソースへのアクセス、または指定されたアクションの実行を承認されていないことを示します。
403 Forbiddenエラーの例
発生する理由
このエラーは、権限が不足しているため、接続済みアプリが特定のレコードまたはフィールドへのアクセスをブロックする場合に発生します。 たとえば、コネクションで基本的な従業員情報へのアクセスは許可されていても、給与やSocial Security番号などの機密フィールドは制限されている場合があります。 これは通常、接続ユーザーのロールに必要なスコープまたは権限がない場合に発生します。
トラブルシューティング方法
トラブルシューティングの手順は、エラーがトリガーで発生しているか、アクションで発生しているかによって異なります。
- アクションエラー: ネットワークトレースを使用してジョブを調査し、403 Forbiddenエラーを返したステップを特定します。 リクエストとレスポンスを確認して、問題の原因となったデータを特定します。
- トリガーエラー: トリガーではトレースを使用できません。 代わりに、Schedulerトリガーを使用するレシピを作成し、レコードを1件ずつ取得してログに記録します。 これにより、Workatoがアクセスできないレコードを特定できます。
アクションエラー
ネットワークトレースを使用してトラブルシューティングを行い、403 Forbiddenエラーを返したステップを特定できます。 トレースには、HTTP URL、ヘッダー、ペイロード、レスポンスなど、エラーをトリガーしたリクエストが表示されます。
問題を解決するには、次の手順を実行します。
ジョブを開き、403 Forbiddenエラーを返したステップを見つけます。
デバッグトレースでHTTPレスポンス本文を調査し、権限に関連するメッセージを確認します。
リクエストURLとペイロードを確認し、コネクターがアクセスしようとしたデータまたはリソースを特定します。
アプリで接続ユーザーのロールまたはトークン権限を確認し、そのデータにアクセスできることを確認します。
必要に応じて、アプリでユーザーのロールまたはアクセスレベルを更新します。
トークンのスコープまたはユーザー権限が変更された場合は、Workatoでアプリを再接続します。
ジョブを再実行し、問題が解決したことを確認します。
トリガーエラー
トリガーで403 Forbiddenエラーが発生した場合、ジョブデバッグトレースを使用してリクエストを調査することはできません。 ただし、診断用レシピを作成して、トリガーの実行中にエラーの原因となる特定のレコードを特定できます。
トラブルシューティングを行うには、次の手順を実行します。
元のトリガーが処理するレコードをシミュレートするために、Schedulerトリガーを使用して新しいレシピを作成します。
元のトリガーがアクセスしようとしているレコードを確認するために、リストアクションを追加します。 たとえば、New employeeトリガーが403 Forbiddenエラーを返す場合、List employeesアクションを使用して、トリガーが処理できないレコードを特定します。
前のアクションで取得された各レコードをループ処理するために、Repeatアクションを追加します。
Repeatアクションを追加
リストデータピルをRepeatアクションのInput listフィールドにマッピングします。 これにより、前のステップで取得されたレコードがループ中に個別に処理されます。
リストデータピルを入力
各レコードを個別に分離して確認するために、Repeat modeをOne item at a timeに設定します。
特定のレコードの処理によってトリガーされたエラーをキャプチャするために、Repeatステップ内にHandle errorsステップを追加します。
Handle errorsステップを追加
エラーの原因となったレコードの詳細情報を取得するために、モニターパス内にアクションを追加します。 たとえば、Get detailsアクションを使用して、IDを使ってレコードの詳細情報を取得します。
エラー時パス内にLogger by Workatoアクションを追加して、エラーをトリガーした項目のレコードIDを取得します。
レコードIDをログに記録
レシピを実行し、ログを確認して、403 Forbiddenエラーを返したレコードを特定し、アクセスの問題の原因を調査します。
Last updated: