Quick Audience开放平台API

本文档提供了针对接口调用的通用指南和说明。

QA 开放平台接口调用

开放平台上的接口调用需要依托于在 Quick Audience 开放平台上创建的应用。成功创建应用后,系统将自动生成应用ID、AccessKey 和 AccessSecret,这些关键参数是执行接口调用时必需的凭证。

签名

当您的应用获得了相应的接口权限后,您可以按照以下步骤进行调用:在发起请求的接口URL中附加appId、accessKeytimestamp(即时间戳参数)。同时,您需要在请求头(header)中添加经过签名的Authorization字段。

公共参数说明

参数

说明

位置

appId

开放平台的应用id

请求URI中的参数部分

accessKey

开放平台的应用的ak

请求URI中的参数部分

timestamp

当前时间戳(毫秒)

请求URI中的参数部分

Authorization

生成的签名

请求的header

用户在访问时,按照下面的方法对请求进行签名处理:

  • 使用请求参数构造规范化的请求字符串(Canonicalized Query String)

  • 按照参数名称的字典顺序对请求中所有的请求参数(包括文档中描述的“公共请求参数”和给定了的请求接口的自定义参数)进行排序。  注:当使用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请求,还有其他的query参数,那么继续加

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&timestamp=yyy' \
--header 'Authorization: demosign'

quick audience 会根据以上的参数进行验签,如果应用不存在,签名不正确等都会拦截接口请求,其他的接口参数详见具体的接口文档。

域名

环境

域名

张家口

quicka.aliyun.com

上海

quicka-shanghai.aliyun.com

异常码

异常code

说明

ES05910010001

APP不存在

请确认在开放平台创建的APP是否存在

ES05910010002

签名不正确

请确认生成签名的方式是否正确

ES05910010003

时间戳校验不通过

生成的时间戳需要在30分钟内调用,否则校验不通过

ES05910010004

应用没有当前接口权限

应用需要订阅接口api才可以使用

ES05910010005

检查appId, accessKey, timestamp 传参是否正确

开放平台的接口,公共参数appId, accessKey, timestamp必须传,且按照平台的规范