コンテンツにスキップ

トラブルシューティング

API 利用中によく起きるエラーと対処法をまとめます。

リクエストが認証層で拒否された状態。

原因対処
access_token の TTL (10 時間) 超過refresh_token で更新するか再度 authorize
revoke 済みのトークン再度 authorize して新しいトークンを取得
Authorization ヘッダの形式不正Authorization: Bearer <access_token> (先頭の Bearer 大文字、空白 1 つ)
対象 Application が DCR 経由で登録されていない内部用 OAuth Application を流用していないか確認。必ず /api/v1/oauth/register/ で発行したトークンを使う
ユーザーアカウントが無効化されている別の有効なアカウントで authorize

認証は通ったが、操作する権限がない状態。

原因対処
操作に必要な scope がトークンに含まれていない (例: オーダー作成に orders:write が無い、オーダー参照に orders:read が無い)scope 一覧 を確認し、DCR と authorize の両方で必要な scope を指定して再取得
Current-Team ヘッダで指定したチームのメンバーでないGET /api/v1/external/teams/ で利用可能なチーム一覧を取得し、有効な team_uuid を渡す
操作対象 (オーダー / コンタクト等) が別チームのリソースチームスコープが一致しているか確認
IP whitelist に弾かれている社内 IP 制限を設定している場合、許可リストを SendWOW 営業担当に確認
原因対処
パス / メソッドが対応していないAPI リファレンス で利用可能な操作を確認
対象リソース (オーダー UUID 等) が存在しない / 別チームのものCurrent-Team と ID の整合を確認
trailing slash の有無の違いエンドポイントは末尾 slash 付きが基本 (/api/v1/external/orders/)

token 取得時に返るエラー。以下のいずれか:

  • PKCE code_verifiercode_challenge と一致していない
  • 認可コード (code) が期限切れ (通常 5 分) または既に使用済み
  • redirect_uri が authorize 時と完全一致していない
  • refresh_token が TTL 切れ / revoke 済み / token family revoke の影響

特に PKCE は code_challenge_method=S256 固定で、verifier は authorize 時の challenge と同じ session 内で生成したものでなければなりません。

クライアント登録時の scope と authorize 要求 scope が不整合の場合に発生します。

状況対処
DCR 時に登録していない scope を authorize で要求した (例: orders:read のみで登録したクライアントが orders:write を要求)必要な scope を含めて再 DCR するか、authorize の scope を登録済みの範囲に絞る

DCR (/oauth/register/) で 400 が返るケース:

原因対処
redirect_uris の scheme が未対応https:// + ホスト名で指定 (loopback の http://cursor:// 等の private-use scheme は可)
redirect_uris に空白 / 改行 / fragment が含まれるURI を再確認
client_name< / > / 制御文字 / 改行プレーンな文字列で再
scope がサポート外 (openid 等のみ指定)scope 一覧 の値を 1 つ以上含める (未知の scope は無視されるが、全て未知だと 400)

POST /api/v1/oauth/register/ は同一 IP から 20 回 / 時 の制限があります。引っかかった場合は時間を置くか、運用上必要な場合は SendWOW 営業担当に事前ご相談ください。

  • HTTP レスポンスの ボディ全文 (error / error_description フィールド) を控えてください
  • 当該リクエストの タイムスタンプ (UTC) と client_id を併せて support@sendwow.jp までご連絡ください
  • アクセストークン全文は 共有しないでください (マスク or 末尾数文字のみで OK)