樣本上傳接口文檔
本文檔介紹如何對(duì)接風(fēng)險(xiǎn)識(shí)別樣本管理能力,通過API上傳黑/白樣本,實(shí)現(xiàn)樣本的統(tǒng)一管理和維護(hù)。
1.對(duì)接準(zhǔn)備
建議您為阿里云賬號(hào)創(chuàng)建子賬號(hào)、并通過子賬號(hào)的AccessKeyID、AccessKeySecret來實(shí)現(xiàn)接口調(diào)用,便于后續(xù)管理。具體步驟包括:
登錄RAM訪問控制;
身份管理-用戶-創(chuàng)建用戶;
點(diǎn)擊該用戶,選擇創(chuàng)建AccessKeyID;
添加權(quán)限,搜索AliyunYundunSAFFullAccess并添加;
2.通過服務(wù)端SDK接入
在調(diào)用風(fēng)險(xiǎn)識(shí)別服務(wù)時(shí),建議您使用阿里云風(fēng)險(xiǎn)識(shí)別SDK。調(diào)用方無需關(guān)注簽名驗(yàn)證以及Body格式構(gòu)建等繁瑣的事情,目前支持JAVA、Python、PHP、C#、Golang、Node.js、Ruby共7種SDK。
JAVA Maven依賴:
<dependencies>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>safconsole20210112</artifactId>
<version>1.0.1</version>
</dependency>
</dependencies>
代碼示例:
public class ApiTest {
public static void main(String[] a) throws Exception {
/**
* 阿里云賬號(hào)AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進(jìn)行API訪問或日常運(yùn)維。
* 強(qiáng)烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導(dǎo)致AccessKey泄露,威脅您賬號(hào)下所有資源的安全。
* 本示例通過從環(huán)境變量中讀取賬號(hào)的RAM用戶AccessKey,來實(shí)現(xiàn)API訪問的身份驗(yàn)證。運(yùn)行本示例代碼前,請(qǐng)確認(rèn)配置這兩個(gè)環(huán)境變量:ALIBABA_CLOUD_ACCESS_KEY_ID、ALIBABA_CLOUD_ACCESS_KEY_SECRET。
*/
// RAM賬號(hào)的AccessKey ID
String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
// RAM賬號(hào)Access Key Secret
String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必填,您的 AccessKey ID
.setAccessKeyId(accessKeyId)
// 必填,您的 AccessKey Secret
.setAccessKeySecret(accessKeySecret);
config.endpoint = "safconsole.cn-shanghai.aliyuncs.com";
com.aliyun.safconsole20210112.Client client = new Client(config);
//生成訪問代碼,字段含義參考接口參數(shù)說明。
String dataType = "ip";
String dataValue = "[\"123.xxx.xxx.xxx\",\"123.xxx.xxx.xxx\"]";
String sampleType = "block";
String service = "account_abuse,coupon_abuse,account_takeover";
UploadSampleApiRequest request = new UploadSampleApiRequest();
request.setDataType(dataType);
request.setDataValue(dataValue);
request.setSampleType(sampleType);
request.setService(service);
UploadSampleApiResponse response = client.uploadSampleApi(request);
System.out.println("httpResponse:" + JSONObject.toJSONString(response));
//訪問失敗,檢查和pop網(wǎng)關(guān)的連接是否正常
if (response.statusCode != 200) {
//錯(cuò)誤處理
System.out.println("網(wǎng)關(guān)錯(cuò)誤");
return;
}
//請(qǐng)求后端錯(cuò)誤,按照api手冊(cè)處理
if (!"200".equals(response.body.code) || !"true".equals(response.body.success)) {
System.out.println("請(qǐng)求后端錯(cuò)誤,按照api手冊(cè)處理");
System.out.println(response.body.message);
return;
}
//請(qǐng)求成功
System.out.println("請(qǐng)求成功");
return;
}
}
3.接口參數(shù)說明
3.1接口入?yún)?/h3>
參數(shù)名稱 | 參數(shù)位置 | 類型 | 是否必填 | 描述 | 示例值 |
SampleType | query | string | 是 | 樣本的類型
| block |
DataType | query | string | 是 | 樣本的數(shù)據(jù)類型
| ip |
Service | query | string | 是 | 生效服務(wù)的列表,多個(gè)服務(wù)用逗號(hào)分開
| account_abuse,coupon_abuse,account_takeover |
DataValue | query | string | 是 | 樣本的具體值,以JSON格式傳入。一次不要超過1000條。 | ["123.xxx.xxx.xxx","123.xxx.xxx.xxx"] |
3.2接口出參
參數(shù)名稱 | 參數(shù)位置 | 類型 | 描述 | 成功時(shí)的返回 |
statusCode | response | int | 訪問網(wǎng)關(guān)的status | 200 |
code | response.body | string | 后端返回的code | 200 |
success | response.body | string | 返回是否成功 | true |
msg | response.body | string | 錯(cuò)誤信息 | 成功時(shí)不返回 |
3.3返回碼說明
用戶發(fā)送的每次接口調(diào)用請(qǐng)求,無論成功與否,阿里云都會(huì)為客戶返回公共參數(shù),其中code為請(qǐng)求狀態(tài)碼。
錯(cuò)誤代碼 | 錯(cuò)誤信息 | 說明 |
1101 | system error | 系統(tǒng)錯(cuò)誤,聯(lián)系阿里云進(jìn)行排查 |
1002 | userId is not null | 無法獲取有效的userID,請(qǐng)檢查AK |
Service parse to string list failed | Service解析失敗,檢查service是否符合接口格式 | |
Service not in enum list | service不在枚舉值中,檢查service是否在枚舉值中 | |
SampleType is not null | SampleType為空,檢查SampleType的值 | |
SampleType not in enum list | SampleType不在枚舉值中,檢查SampleType是否在枚舉值中 | |
DataType is not null | DataType為空,檢查DataType的值 | |
DataType not in enum list | DataType不在枚舉值中,檢查DataType是否在枚舉值中 | |
DataValue is not json string | DataValue不是jsonString格式,請(qǐng)檢查DataValue | |
DataValue is empty | DataValue為空,請(qǐng)檢查DataValue數(shù)量 | |
DataValue size larger than 1000 | DataValue一次上傳超過1000條,請(qǐng)檢查DataValue數(shù)量 |
注意:接口QPS設(shè)置需小于等于50。