このドキュメントでは、API 呼び出しに関する一般的なガイドラインと手順について説明します。
QA オープン プラットフォーム API 呼び出し
オープン プラットフォームで API 操作を呼び出すには、Quick Audience オープン プラットフォームでアプリケーションを作成する必要があります。 アプリケーションが作成されると、システムは自動的にアプリケーション ID、AccessKey、および AccessSecret を生成します。 これらの主要なパラメーターは、API 呼び出しに必要です。
署名
アプリケーションが対応する API 権限を取得したら、次の手順を実行して呼び出すことができます。 リクエストを開始する API URL に appId、accessKey、およびタイムスタンプ(つまり、timestamp パラメーター)を添付します。 さらに、署名付きの Authorization フィールドをリクエストヘッダーに追加する必要があります。
共通パラメーター
項目 | 値の例 | 場所 |
appId | オープン プラットフォームのアプリケーション ID。 | リクエスト URI のパラメーターセクション |
accessKey | オープン プラットフォーム上のアプリケーションの ak | リクエスト URI のパラメーターセクション |
timestamp | 現在のタイムスタンプ(ミリ秒) | リクエスト URI のパラメーターセクション |
Authorization | 生成された署名 | リクエストのヘッダー内 |
リクエストに署名するには、次の手順を実行します。
リクエストパラメーターを使用して、正規化されたクエリ文字列を構築します。
リクエスト内のすべてのパラメーター(ドキュメントに記載されている「パブリックリクエストパラメーター」と、特定のリクエスト API のカスタムパラメーターを含む)を、リクエストパラメーター名の辞書式順序でソートします。 注:GET メソッドを使用してリクエストを送信する場合、これらのパラメーターはリクエスト URI のパラメーターです(つまり、URI 内の「?」の後に「&」で接続された部分)。 accessSecret も、署名の生成に使用されるパラメーターに必要です。
名前と値は UTF-8 文字セットを使用してエンコードされます。
すべての URL パラメーターに urlEncode を使用する必要があります。
次の図に示すサンプルコードを使用して、コード内のパラメーターを構成します。
次の Java コードは、署名生成ロジックの例を示しています。
String appId="tttt";
String accessKey = "xxxx";
String accessSecret ="yyyy";
String timeStamp = "1708235644862";
SortedMap<String, String> map = new TreeMap<>();
map.put("appId", appId);
map.put("accessKey", accessKey);
map.put("accessSecret",accessSecret );
map.put("timestamp", timeStamp);
// GET リクエストで他のクエリパラメータがある場合は、追加を続けます
String aa = getCanonicalQueryString(map);
System.out.println(aa);
String authorization = org.apache.commons.codec.digest.DigestUtils.md5Hex(aa);
System.out.println(authorization);public static String getCanonicalQueryString(SortedMap<String, String> paramsMap) {
StringBuilder queryString = new StringBuilder();
boolean isFirstParameter = true;
for (Map.Entry<String, String> entry : paramsMap.entrySet()) {
String paramName = entry.getKey();
String value = entry.getValue();
if (!isFirstParameter) {
queryString.append("&");
} else {
isFirstParameter = false;
}
queryString.append(paramName).append("=").append(value);
}
return queryString.toString();
}ステートメントの例:
curl --location -g --request POST 'http://{quick audience パブリックエンドポイント}/openapi/apipath/xxxx?appId=aaa&accessKey=xxx×tamp=yyy' \
--header 'Authorization: demosign'quick audience は、上記のパラメーターに基づいて署名を確認します。 アプリケーションが存在しない場合、または署名が正しくない場合、アプリケーションはリクエストをインターセプトします。 その他の API パラメーターについては、特定の API ドキュメントを参照してください。
ドメイン名
環境 | ドメイン名 | |
中国(張家口) | quicka.aliyun.com | |
中国(上海) | quicka-shanghai.aliyun.com |
例外コード
例外コード | 説明 | |
ES05910010001 | アプリが存在しません。 | オープン プラットフォームで作成された APP が存在するかどうかを確認します。 |
ES05910010002 | リクエストの署名が無効なために返されたエラーコードです。 | 署名が正しく生成されているかどうかを確認します。 |
ES05910010003 | タイムスタンプ検証に失敗しました。 | 生成されたタイムスタンプは 30 分以内に呼び出す必要があります。 そうしないと、検証は失敗します。 |
ES05910010004 | アプリケーションに現在の API 権限がありません。 | アプリケーションを使用するには、API をサブスクライブする必要があります。 |
ES05910010005 | appId、accessKey、および timestamp パラメーターが正しいかどうかを確認します。 | パブリックパラメーター appId、accessKey、および timestamp は、プラットフォームの仕様に従って渡す必要があります。 |