全部產品
Search
文件中心

SuperApp:查詢AIGC任務結果

更新時間:Mar 29, 2025

1. 介面說明

根據“提交AIGC任務”介面返回的 taskId 查詢任務結果

2. 服務接入地址

https://industrysolutions.alibabacloud.com

3. 介面URI

/openapi/v1/aigc/queryTask

4. 請求Method

GET

5. 請求參數

參數名

類型

是否必傳

說明

taskId

string

yes

提交aigc任務介面返回的taskId

6. 介面響應

參數名

子參數

類型

說明

success

boolean

是否調用成功:true:調用成功,false:調用失敗

model

object

產生的taskId,後續用於查詢任務執行結果

taskId

string

任務ID

status

string

WAITING: 待調度

RUNNING: 執行中

SUCCESS: 成功

AIGC_ERROR: 演算法異常

LW_REQUEST_ERROR: 請求異常

LW_RESULT_ERROR: 結果異常

TIMEOUT: 逾時

FC_ERROR:函數異常

UNKNOWN_ERROR: 未知異常

SUBMIT_ERROR:介面異常

ossPath

string

當status為“SUCCESS”返回圖片的公網url地址

errorCode

string

異常狀態代碼。當介面調用失敗時有值。狀態代碼參考後續文檔。

errorMsg

string

異常資訊。當介面調用失敗時有值。

7. 常用異常狀態代碼

異常狀態代碼

異常資訊描述

INTCNN_COMMON_AUTH_CHECK_ERROR

簽名校正錯誤

INTCNN_COMMON_NOT_FOUND

介面不存在

INTCNN_COMMON_PARAM_VALID_ERROR:

參數校正異常

INTCNN_COMMON_SYS_ERROR

服務端未知異常

8. 請求樣本

curl --location 'https://industrysolutions.alibabacloud.com/openapi/v1/aigc/queryTask?taskId=65111151-ac20-4f90-8ea7-263ef42db5e5' \
--header 'X-Request-Id: db160925-0b58-4609-bc6e-08cdf12bf2e6' \
--header 'X-Access-Key: 5017114*******' \
--header 'X-Request-Sign: 7894db2a4*******c23976d6d42c93e' \
--header 'X-Request-Timestamp: 1736162679922'

9. 響應樣本

{
 "success": true,
 "model": {
     "taskId": "28fdf560-249a-4712-adcc-906c0346602b",
     "status": "SUCCESS",
     "ossPath": "http://superapp.oss-ap-southeast-1.aliyuncs.com/%5B%5D?Expires=1738915150&OSSAccessKeyId=LTfdfaFPkwJtb&Signature=ju0HvkN8nhr%2Fqv3JYyfdfxK1B%2Bk%3D"
 },
 "errorCode": null,
 "errorMsg": null
}

註:結果連結時效為24小時,請及時儲存結果。

10. 介面簽名

請求端需要對請求的內容進行簽名,服務端進行驗簽,以證明內容沒有被篡改,從而保障開發人員應用和開放平台互動的安全性。

10.1. 簽名涉及要素

10.1.1. Request URI

如請求地址為:https://{domainName}/openapi/v1/a/b

則requestURI為:/openapi/v1/a/b

10.1.2. Request Method

http請求的method。

10.1.3. Request Header

要求標頭主要包含以下幾個Fields(Field是大小寫敏感的)。

Header

Required

Description

Code sample

X-Request-Sign

Yes

本次請求產生的簽名,預設為HmacSHA1。

X-Request-Sign:****

X-Access-Key

Yes

請求方的身份識別ID,AccessKey。

X-Access-Key:頒發給使用者的AccessKey。客戶的ak、sk請線下聯絡superapp開放平台營運人員擷取。

X-Request-Timestamp

Yes

時間戳記(毫秒)

X-Timestamp:時間戳記。如:1740471900061

10.1.4. Request QueryString

get請求的參數,?後面的部分。如https://{domainName}/openapi/v1/a/b?param1=xx&param2=yy

則QueryString為:param1=xx&param2=yy

10.2. 簽名方式

  1. 首先需要構造用於加簽的content,每次請求都會有以下屬性:

    • HTTP_URI : 例如 /openapi/v1/a/b

    • HTTP_QUERY_STRING : param1=xx&param2=yy

    • X-Access-Key:46b1cac78ed94ca4b99ad6de550a****

    • X-Request-Timestamp:1676904384074

  2. 基於以上資訊,{Content_To_Be_Signed}的格式如下,我們可以構造出需要加簽的content。<HTTP_URI> ?<HTTP_QUERY_STRING><Request-Time><Access-Key>

/openapi/v1/a/b?param1=xx&param2=yy167690438407446b1cac78ed94ca4b99ad6de550a****
  1. 使用HmacSHA1演算法,以下的程式碼範例展示了如何加簽一個請求。

public String computeGetSign(String accessKey,String secretKey,String timestamp,String uri,String queryString) {
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append(uri);
    if (StringUtils.isNotBlank(queryString)) {
        stringBuilder.append("?");
        stringBuilder.append(queryString);
    }

    if (StringUtils.isNotBlank(timestamp)) {
        stringBuilder.append(timestamp);
    }

    if (StringUtils.isNotBlank(ak)) {
        stringBuilder.append(accessKey);
    }

    return generateSign(stringBuilder.toString(), secretKey, SIGN_ALGORITHM);
}


public static String generateSign(String content, String key, String algorithm) {
    if (!StringUtils.isEmpty(algorithm) && !StringUtils.isEmpty(content) && null != key) {
        try {
            SecretKeySpec signinKey = new SecretKeySpec(key.getBytes(), algorithm);
            Mac mac = Mac.getInstance(algorithm);
            mac.init(signinKey);
            byte[] rawHmac = mac.doFinal(content.getBytes());
            return convertToHex(rawHmac);
        } catch (InvalidKeyException | NoSuchAlgorithmException var6) {
            return "";
        }
    } else {
        return "";
    }
}


public static String convertToHex(byte[] bytes) {
    int len = bytes.length;
    StringBuilder buf = new StringBuilder(len * 2);

    for(int j = 0; j < len; ++j) {
        buf.append(HEX[bytes[j] >> 4 & 15]);
        buf.append(HEX[bytes[j] & 15]);
    }

    return buf.toString();
}

10.3. 發送請求

通過將Client-Id、Request-Time和Signature添加到要求標頭,可以構造出如下請求:

curl --location 'https://example.com/openapi/v1/a/b?param1=xx&param2=yy' \
--header 'X-Request-Id: db160925-0b58-4609-bc6e-08cdf12bf2e6' \
--header 'X-Access-Key: 5017114*******' \
--header 'X-Request-Sign: 7894db2a4*******c23976d6d42c93e' \
--header 'X-Request-Timestamp: 1736162679922'