APIがチャネルをサポート解除
発生原因
リクエスト内のHTTPスキーマが無効です。
異なるAPIは異なるHTTPスキーマをサポートします。 APIプロバイダーは、サポートされるHTTPスキーマを独自に設定できます。 たとえば、HTTPリクエストのみ、HTTPSリクエストのみ、またはHTTPリクエストとHTTPSリクエストの両方を許可するように設定できます。
API unsupport the channel: このエラーは、HTTPSリクエストのみをサポートするAPIを呼び出すためにHTTPリクエストが開始されたときに報告されます。
API unsupport the channel: このエラーは、HTTPリクエストのみをサポートするAPIを呼び出すためにHTTPSリクエストが開始されたときに報告されます。
ソリューション
API unsupport the channel: HTTPの代わりにHTTPSを開始し、APIの呼び出しをリクエストします。
API unsupport the channel: HTTPSの代わりにHTTPを開始し、APIの呼び出しを要求します。
A403IS
発生原因
クライアントによって提供された署名は、サーバー側の署名と一致しません。
ソリューション
署名が一致しない場合、API Gatewayは、X-Ca-Error-Message応答ヘッダーでサーバー側の署名を計算するために使用されるStringToSignパラメーターを返します。
StringToSignパラメーターには、リクエストの送信前に署名を計算するための文字列が含まれています。 詳細については、「ダイジェスト認証を使用したAPIの呼び出し」をご参照ください。
ローカルのStringToSignを取得し、それを差分と調整のレスポンスで返されたStringToSignと比較することができます。 公式デモを使用して呼び出しを行う場合は、署名計算ツールクラスを使用して、署名計算に使用されたStringToSignを取得できます。
HTTPレスポンスヘッダーで改行は許可されていないため、StringToSignパラメーターの改行はレスポンスで削除されます。 ドキュメントを参照し、文字列を正しく比較します。
クライアント側とサーバー側の文字列が一致している場合は、使用するAppKeyとAppSecretが有効かどうかを確認します。 たとえば、AppKeyとAppSecretに余分なスペースがあるかどうかを確認します。
無効なUrl
発生原因
リクエストに指定されたHTTPメソッド、パス、または環境 (X-Ca-Stage) が不正です。
たとえば、テスト環境でAPIを呼び出すように要求されましたが、テスト環境ではAPIが公開されていません。
ノート:
リクエストで環境を指定しない場合、リクエストはデフォルトで本番環境 (RELEASE) に送信されます。
APIの定義を変更する場合は、変更を有効にするためにAPIを再発行する必要があります。 多くの場合、このエラーは、パスが変更された後にAPIが再公開されないが、新しいパスが要求で指定されるために報告されます。
ソリューション
HTTPメソッド、パス、環境の3つの要素に基づいて、リクエストまたはAPIを確認します。
リクエストでAPI定義と同じHTTPメソッドを指定します。 たとえば、POSTメソッドでAPIを呼び出す必要がある場合は、リクエストにGETを指定しないでください。
使用中の実際のパスに基づいて、リクエスト内のパスを指定します。 APIを所有している場合は、変更後に再公開することを忘れないでください。
APIを呼び出す环境を指定します。 リクエストでX-Ca-Stageヘッダーを使用します。 有効な値: TEST、PRE、RELEASE。それぞれ、テスト環境、ステージング環境、および本番環境を示します。 ヘッダーを指定しない場合、リクエストはデフォルトで本番環境に送信されます。
権限が付与されていません
発生原因
アプリケーションはAPIを呼び出す権限がありません。
解決策
次の解決策を試してください。
APIを作成した場合は、アプリケーションを作成し、API GatewayコンソールでアプリケーションにAPIの呼び出しを許可します。 つまり、APIを所有していて、テストのためだけに呼び出す場合でも、アプリケーションはAPIを呼び出す必要があります。
APIを購入した場合、アプリケーションの詳細ページで特定のアプリケーションを使用して呼び出すことができるAPIを表示できます。 呼び出すAPIがページに表示されない場合は、自分でアプリケーションの承認を取得する必要があります。
パートナーに属するAPIを呼び出した場合、承認のためにパートナーに連絡してください。 この場合、パートナーがアプリケーションを承認するためのアプリケーションID (AppId) を指定する必要があります。
承認は環境に依存します。 許可されたアプリケーションを使用して、異なる環境で同じAPIを呼び出すことはできません。
正しいアプリケーションを使用し、正しいAPIを呼び出したかどうかを確認します。 呼び出し元は、アプリケーションやAPIが多数ある場合、間違ったアプリケーションを使用するか、間違ったAPIを呼び出します。