URL風險檢測支持SDK方式調用和原生HTTPS方式調用。推薦您使用SDK接入,可免去簽名驗證以及Body格式構建等細節步驟。本文介紹URL風險檢測接入的方式。
步驟一:開通服務
訪問開通服務頁面,開通內容安全增強版服務。
開通內容安全增強版服務后,默認付費方式是按量后付費,且按照實際用量結算當日費用,不調用服務不收費。接口接入使用后系統會按使用量自動出賬,具體信息,請參見計費說明。您也可以購買按量抵扣資源包,資源包相較于后付費存在一定階梯折扣,適合使用量級可預期和較大的用戶。
步驟二:創建RAM用戶并授權
在集成SDK之前,您需要創建一個用于調用SDK的用戶身份,獲取身份關聯的OpenAPI訪問憑據,并授予訪問云上資源的訪問權限。本文創建RAM用戶,獲取訪問憑據為AccessKey,并授予調用URL風險檢測服務的權限。更多信息,請參見集成SDK。
步驟三:安裝并接入URL風險檢測服務
目前支持的接入地域為:
地域 | 外網接入地址 | 內網接入地址 |
華東2(上海) | green-cip.cn-shanghai.aliyuncs.com | green-cip-vpc.cn-shanghai.aliyuncs.com |
如果需要其他語言的SDK示例代碼,您可以通過OpenAPI 開發者門戶在線調試工具調試API接口,該工具會自動生成相應API的SDK調用示例代碼。在線調試API接口如下:
阿里云SDK代碼通過定義ALIBABA_CLOUD_ACCESS_KEY_ID
和ALIBABA_CLOUD_ACCESS_KEY_SECRET
環境變量來創建默認的訪問憑證。調用接口時,程序直接訪問憑證,讀取您的訪問密鑰(即AccessKey)并自動完成鑒權。您在接入SDK代碼示例之前,請先配置環境變量。具體操作,請參見身份驗證配置。
Java SDK
在pom.xml中加入相應依賴,就可以在Maven工程中使用SDK。
在dependencies中添加如下依賴:
<dependency> <groupId>com.aliyun</groupId> <artifactId>green20220302</artifactId> <version>2.2.0</version> </dependency>
接入Java SDK。
提交URL風險檢測任務代碼示例
import com.alibaba.fastjson.JSON; import com.aliyun.green20220302.Client; import com.aliyun.green20220302.models.UrlAsyncModerationRequest; import com.aliyun.green20220302.models.UrlAsyncModerationResponse; import com.aliyun.green20220302.models.UrlAsyncModerationResponseBody; import com.aliyun.teaopenapi.models.Config; import com.aliyun.teautil.models.RuntimeOptions; import java.util.HashMap; import java.util.Map; import java.util.UUID; public class UrlAsyncModerationDemo { /** * 創建請求客戶端 * * @param accessKeyId * @param accessKeySecret * @param endpoint * @return * @throws Exception */ public static Client createClient(String accessKeyId, String accessKeySecret, String endpoint) throws Exception { Config config = new Config(); config.setAccessKeyId(accessKeyId); config.setAccessKeySecret(accessKeySecret); // 設置http代理。 // config.setHttpProxy("http://10.10.xx.xx:xxxx"); // 設置https代理。 // config.setHttpsProxy("https://10.10.xx.xx:xxxx"); // 接入區域和地址請根據實際情況修改 config.setEndpoint(endpoint); return new Client(config); } public static UrlAsyncModerationResponse invokeFunction(String accessKeyId, String accessKeySecret, String endpoint) throws Exception { //注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 Client client = createClient(accessKeyId, accessKeySecret, endpoint); // 創建RuntimeObject實例并設置運行參數 RuntimeOptions runtime = new RuntimeOptions(); // 檢測參數構造。 Map<String, String> serviceParameters = new HashMap<>(); //公網可訪問的URL。 serviceParameters.put("url", "https://www.aliyun.com/"); //檢測數據唯一標識。 serviceParameters.put("dataId", UUID.randomUUID().toString()); //檢測結果回調通知您的URL。 serviceParameters.put("callback", "http://www.aliyun.com"); //隨機字符串,該值用于回調通知請求中的簽名。 serviceParameters.put("seed", "seedCode"); //使用回調通知時(callback),設置對回調通知內容進行簽名的算法。 serviceParameters.put("cryptType", "SM3"); UrlAsyncModerationRequest request = new UrlAsyncModerationRequest(); // url檢測service,示例:url_detection_pro request.setService("url_detection_pro"); request.setServiceParameters(JSON.toJSONString(serviceParameters)); UrlAsyncModerationResponse response = null; try { response = client.urlAsyncModerationWithOptions(request, runtime); } catch (Exception e) { e.printStackTrace(); } return response; } public static void main(String[] args) throws Exception { /** * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 * 常見獲取環境變量方式: * 方式一: * 獲取RAM用戶AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); * 獲取RAM用戶AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); * 方式二: * 獲取RAM用戶AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID"); * 獲取RAM用戶AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); */ String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); UrlAsyncModerationResponse response = invokeFunction(accessKeyId, accessKeySecret, "green-cip.cn-shanghai.aliyuncs.com"); // 打印檢測結果。 if (response != null) { if (response.getStatusCode() == 200) { //返回結果中包含reqId字段,獲取異步檢測結果時將該字段作為入參,獲取圖片檢測結果 UrlAsyncModerationResponseBody body = response.getBody(); if (body.getCode() == 200) { System.out.println(JSON.toJSONString(body)); } else { System.out.println("url moderation not success. code:" + body.getCode()); } } else { System.out.println("response not success. status:" + response.getStatusCode()); } } } }
獲取URL風險檢測任務結果代碼示例
package com.example.demo.cip.image; import com.alibaba.fastjson.JSON; import com.aliyun.green20220302.Client; import com.aliyun.green20220302.models.DescribeUrlModerationResultRequest; import com.aliyun.green20220302.models.DescribeUrlModerationResultResponse; import com.aliyun.teaopenapi.models.Config; import com.aliyun.teautil.models.RuntimeOptions; public class DescribeUrlModerationResultDemo { /** * 創建請求客戶端 * * @param accessKeyId * @param accessKeySecret * @param endpoint * @return * @throws Exception */ public static Client createClient(String accessKeyId, String accessKeySecret, String endpoint) throws Exception { Config config = new Config(); config.setAccessKeyId(accessKeyId); config.setAccessKeySecret(accessKeySecret); // 設置http代理。 // config.setHttpProxy("http://10.10.xx.xx:xxxx"); // 設置https代理。 // config.setHttpsProxy("https://10.10.xx.xx:xxxx"); // 接入區域和地址請根據實際情況修改 config.setEndpoint(endpoint); return new Client(config); } public static DescribeUrlModerationResultResponse invokeFunction(String accessKeyId, String accessKeySecret, String endpoint) throws Exception { //注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 Client client = createClient(accessKeyId, accessKeySecret, endpoint); // 創建RuntimeObject實例并設置運行參數 RuntimeOptions runtime = new RuntimeOptions(); //構造請求入參 DescribeUrlModerationResultRequest request = new DescribeUrlModerationResultRequest(); //將提交異步檢測任務時返回值中的reqId作為獲取結果的入參。例如:DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44 request.setReqId("DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44"); DescribeUrlModerationResultResponse response = null; try { response = client.describeUrlModerationResultWithOptions(request, runtime); } catch (Exception e) { e.printStackTrace(); } return response; } public static void main(String[] args) throws Exception { /** * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 * 常見獲取環境變量方式: * 方式一: * 獲取RAM用戶AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); * 獲取RAM用戶AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); * 方式二: * 獲取RAM用戶AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID"); * 獲取RAM用戶AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); */ String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); DescribeUrlModerationResultResponse response = invokeFunction(accessKeyId, accessKeySecret, "green-cip.cn-shanghai.aliyuncs.com"); // 打印檢測結果。 if (response != null) { if (response.getStatusCode() == 200) { System.out.println(JSON.toJSONString(response.getBody())); } else { System.out.println("response not success. status:" + response.getStatusCode()); } } } }
Python SDK
支持Python 3.6及以上版本。
執行如下命令安裝pip。
pip install alibabacloud_green20220302==2.2.0
接入Python SDK。
提交URL風險檢測任務代碼示例
from alibabacloud_green20220302.client import Client from alibabacloud_green20220302 import models from alibabacloud_tea_openapi.models import Config from alibabacloud_tea_util import models as util_models import json import os import uuid # 創建請求客戶端 def create_client(access_key_id, access_key_secret, endpoint): config = Config( access_key_id=access_key_id, access_key_secret=access_key_secret, # 設置http代理。 # http_proxy='http://10.10.xx.xx:xxxx', # 設置https代理。 # https_proxy='https://10.10.xx.xx:xxxx', # 接入區域和地址請根據實際情況修改。 endpoint=endpoint ) return Client(config) def invoke_function(access_key_id, access_key_secret, endpoint): # 注意:此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 client = create_client(access_key_id, access_key_secret, endpoint) # 創建RuntimeObject實例并設置運行參數。 runtime = util_models.RuntimeOptions() # 檢測參數構造。 service_parameters = { # 公網可訪問的url。 'url': 'https://www.aliyun.com/', # 數據唯一標識 'dataId': str(uuid.uuid1()), # 檢測結果回調通知您的URL。 'callback': 'http://www.aliyun.com', # 隨機字符串,該值用于回調通知請求中的簽名。 'seed': 'seedCode', # 使用回調通知時(callback),設置對回調通知內容進行簽名的算法。 'cryptType': 'SM3' } url_image_moderation_request = models.UrlAsyncModerationRequest( # url檢測service,示例:url_detection_pro service='url_detection_pro', service_parameters=json.dumps(service_parameters) ) try: return client.url_async_moderation_with_options(url_image_moderation_request, runtime), except Exception as err: print(err) if __name__ == '__main__': access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] # 接入區域和地址請根據實際情況修改。 response = invoke_function(access_key_id, access_key_secret, 'green-cip.cn-shanghai.aliyuncs.com') # 打印結果。 if len(response) >= 1: if response[0].status_code == 200: # 調用成功。 # 獲取結果ReqId。 result = response[0].body print('response success. result:{}'.format(result)) if result.code == 200: result_data = result.data print('result: {}'.format(result_data)) else: print('response not success. status:{} ,result:{}'.format(response.status_code, response))
獲取URL風險檢測任務結果代碼示例
from alibabacloud_green20220302.client import Client from alibabacloud_green20220302 import models from alibabacloud_tea_openapi.models import Config from alibabacloud_tea_util import models as util_models import os # 創建請求客戶端 def create_client(access_key_id, access_key_secret, endpoint): config = Config( access_key_id=access_key_id, access_key_secret=access_key_secret, # 設置http代理。 # http_proxy='http://10.10.xx.xx:xxxx', # 設置https代理。 # https_proxy='https://10.10.xx.xx:xxxx', # 接入區域和地址請根據實際情況修改。 endpoint=endpoint ) return Client(config) def invoke_function(access_key_id, access_key_secret, endpoint): # 注意:此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 client = create_client(access_key_id, access_key_secret, endpoint) # 創建RuntimeObject實例并設置運行參數。 runtime = util_models.RuntimeOptions() # 構造請求入參。 describe_result_request = models.DescribeUrlModerationResultRequest( # 將提交異步檢測任務時返回值中的ReqId作為獲取結果的入參。例如:DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44 req_id='DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44', ) try: return client.describe_url_moderation_result_with_options(describe_result_request, runtime) except Exception as err: print(err) if __name__ == '__main__': access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] # 接入區域和地址請根據實際情況修改。 response = invoke_function(access_key_id, access_key_secret, 'green-cip.cn-shanghai.aliyuncs.com') # 打印結果。 if response is not None: if response.status_code == 200: # 調用成功。 # 獲取審核結果。 result = response.body print('response success. result:{}'.format(result)) if result.code == 200: result_data = result.data print('result: {}'.format(result_data)) else: print('response not success. status:{} ,result:{}'.format(response.status_code, response))
PHP SDK
支持PHP 5.6及以上版本。
執行如下命令引入相關依賴。
composer require alibabacloud/green-20220302 2.2.0
接入PHP SDK。
提交URL風險檢測任務代碼示例
<?php require('../../../vendor/autoload.php'); use AlibabaCloud\SDK\Green\V20220302\Models\UrlAsyncModerationResponse; use Darabonba\OpenApi\Models\Config; use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions; use AlibabaCloud\SDK\Green\V20220302\Green; use AlibabaCloud\SDK\Green\V20220302\Models\UrlAsyncModerationRequest; /** * 創建請求客戶端 * @param $accessKeyId * @param $accessKeySecret * @param $endpoint * @return Green */ function create_client($accessKeyId, $accessKeySecret, $endpoint): Green { $config = new Config([ "accessKeyId" => $accessKeyId, "accessKeySecret" => $accessKeySecret, // 設置HTTP代理。 // "httpProxy" => "http://10.10.xx.xx:xxxx", // 設置HTTPS代理。 // "httpsProxy" => "https://10.10.xx.xx:xxxx", "endpoint" => $endpoint, ]); return new Green($config); } /** * 提交檢測任務 * @param $accessKeyId * @param $accessKeySecret * @param $endpoint * @return UrlAsyncModerationResponse */ function invoke($accessKeyId, $accessKeySecret, $endpoint): UrlAsyncModerationResponse { // 注意:此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 $client = create_client($accessKeyId, $accessKeySecret, $endpoint); // 創建RuntimeObject實例并設置運行參數。 $runtime = new RuntimeOptions([]); // 檢測參數構造。 $request = new UrlAsyncModerationRequest(); $serviceParameters = array( // 待檢測url,公網可訪問的URL。 'url' => 'https://aliyun.com', // 檢測數據唯一標識。 'dataId' => uniqid(), // 檢測結果回調通知您的URL。 'callback' => 'http://www.aliyun.com', //隨機字符串,該值用于回調通知請求中的簽名。 'seed' => 'seedCode', // 使用回調通知時(callback),設置對回調通知內容進行簽名的算法。 'cryptType' => 'SM3' ); // URL檢測service,示例:url_detection_pro $request->service = "url_detection_pro"; $request->serviceParameters = json_encode($serviceParameters); // 提交檢測 return $client->urlAsyncModerationWithOptions($request, $runtime); } $accessKeyId = getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); $accessKeySecret = getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); $endpoint = "green-cip.cn-shanghai.aliyuncs.com"; try { $response = invoke($accessKeyId, $accessKeySecret, $endpoint); //返回結果中包含reqId字段,獲取異步檢測結果時將該字段作為入參,獲取圖片檢測結果 print_r(json_encode($response->body, JSON_UNESCAPED_UNICODE)); } catch (Exception $e) { var_dump($e->getMessage()); var_dump($e->getErrorInfo()); var_dump($e->getLastException()); var_dump($e->getLastRequest()); }
獲取URL風險檢測任務結果代碼示例
<?php require('../../../vendor/autoload.php'); use AlibabaCloud\SDK\Green\V20220302\Models\DescribeUrlModerationResultResponse; use Darabonba\OpenApi\Models\Config; use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions; use AlibabaCloud\SDK\Green\V20220302\Green; use AlibabaCloud\SDK\Green\V20220302\Models\DescribeUrlModerationResultRequest; /** * 創建請求客戶端 * @param $accessKeyId * @param $accessKeySecret * @param $endpoint * @return Green */ function create_client($accessKeyId, $accessKeySecret, $endpoint): Green { $config = new Config([ "accessKeyId" => $accessKeyId, "accessKeySecret" => $accessKeySecret, "endpoint" => $endpoint, ]); return new Green($config); } /** * 提交檢測任務 * @param $accessKeyId * @param $accessKeySecret * @param $endpoint * @return DescribeUrlModerationResultResponse */ function invoke($accessKeyId, $accessKeySecret, $endpoint): DescribeUrlModerationResultResponse { // 注意:此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 $client = create_client($accessKeyId, $accessKeySecret, $endpoint); // 創建RuntimeObject實例并設置運行參數。 $runtime = new RuntimeOptions([]); // 請求參數構造。 $request = new DescribeUrlModerationResultRequest(); // 將提交異步檢測任務時返回值中的reqId作為獲取結果的入參。例如:DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44 $request->reqId = "DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44"; // 提交檢測 return $client->describeUrlModerationResultWithOptions($request, $runtime); } $accessKeyId = getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); $accessKeySecret = getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); $endpoint = "green-cip.cn-shanghai.aliyuncs.com"; try { $response = invoke($accessKeyId, $accessKeySecret, $endpoint); print_r(json_encode($response->body, JSON_UNESCAPED_UNICODE)); } catch (Exception $e) { var_dump($e->getMessage()); var_dump($e->getErrorInfo()); var_dump($e->getLastException()); var_dump($e->getLastRequest()); }
Go SDK
執行如下命令引入相關依賴。
go get github.com/alibabacloud-go/green-20220302/v2
接入Go SDK。
提交URL風險檢測任務代碼示例
package main import ( "encoding/json" "fmt" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" green20220302 "github.com/alibabacloud-go/green-20220302/v2/client" util "github.com/alibabacloud-go/tea-utils/v2/service" "github.com/alibabacloud-go/tea/tea" "github.com/google/uuid" "net/http" "os" ) //創建請求客戶端 func createClient(accessKeyId *string, accessKeySecret *string, endpoint *string) (*green20220302.Client, error) { config := &openapi.Config{ /** * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 * 常見獲取環境變量方式: * 獲取RAM用戶AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") * 獲取RAM用戶AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ AccessKeyId: accessKeyId, AccessKeySecret: accessKeySecret, // 設置HTTP代理。 // HttpProxy: tea.String("http://10.10.xx.xx:xxxx"), // 設置HTTPS代理。 // HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"), Endpoint: endpoint, } //注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 return green20220302.NewClient(config) } func invoke(accessKeyId *string, accessKeySecret *string, endpoint *string) (_result *green20220302.UrlAsyncModerationResponse, _err error) { //注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 client, _err := createClient(accessKeyId, accessKeySecret, endpoint) if _err != nil { return nil, _err } //運行時參數設置,僅對使用了該運行時參數實例的請求有效 runtime := &util.RuntimeOptions{} //構建圖片檢測請求。 serviceParameters, _ := json.Marshal( map[string]interface{}{ // 待檢測url鏈接,公網可訪問的URL。 "url": "https://www.aliyun.com", // 待檢測數據的ID。 "dataId": uuid.New(), // 檢測結果回調通知您的URL。 "callback": "http://www.aliyun.com", // 隨機字符串,該值用于回調通知請求中的簽名。 "seed": "seedCode", // 使用回調通知時(callback),設置對回調通知內容進行簽名的算法。 "cryptType": "SM3", }, ) imageModerationRequest := &green20220302.UrlAsyncModerationRequest{ //url檢測service,示例:url_detection_pro Service: tea.String("url_detection_pro"), ServiceParameters: tea.String(string(serviceParameters)), } return client.UrlAsyncModerationWithOptions(imageModerationRequest, runtime) } func main() { /** * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 * 常見獲取環境變量方式: * 獲取RAM用戶AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") * 獲取RAM用戶AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ //var accessKeyId= tea.String("建議從環境變量中獲取RAM用戶AccessKey ID"); //var accessKeySecret= tea.String("建議從環境變量中獲取RAM用戶AccessKey Secret"); var accessKeyId = tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) var accessKeySecret = tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) //接入區域和地址請根據實際情況修改 var endpoint = tea.String("green-cip.cn-shanghai.aliyuncs.com") response, _err := invoke(accessKeyId, accessKeySecret, endpoint) if response != nil { statusCode := tea.IntValue(tea.ToInt(response.StatusCode)) body := response.Body imageModerationResponseData := body.Data if statusCode == http.StatusOK { fmt.Println("response success. response:" + body.String()) if tea.IntValue(tea.ToInt(body.Code)) == 200 { // 返回結果中包含ReqId字段,獲取異步檢測結果時將該字段作為入參,獲取圖片檢測結果 fmt.Println("response ReqId:" + tea.StringValue(imageModerationResponseData.ReqId)) } else { fmt.Println("url moderation not success. status" + tea.ToString(body.Code)) } } else { fmt.Print("response not success. status:" + tea.ToString(statusCode)) fmt.Println("Error:", _err) } } }
獲取URL風險檢測任務結果代碼示例
package main import ( "fmt" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" green20220302 "github.com/alibabacloud-go/green-20220302/v2/client" util "github.com/alibabacloud-go/tea-utils/v2/service" "github.com/alibabacloud-go/tea/tea" "net/http" "os" ) //創建請求客戶端 func createClient(accessKeyId *string, accessKeySecret *string, endpoint *string) (*green20220302.Client, error) { config := &openapi.Config{ /** * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 * 常見獲取環境變量方式: * 獲取RAM用戶AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") * 獲取RAM用戶AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ AccessKeyId: accessKeyId, AccessKeySecret: accessKeySecret, // 設置HTTP代理。 // HttpProxy: tea.String("http://10.10.xx.xx:xxxx"), // 設置HTTPS代理。 // HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"), Endpoint: endpoint, } //注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 return green20220302.NewClient(config) } func invoke(accessKeyId *string, accessKeySecret *string, endpoint *string) (_result *green20220302.DescribeUrlModerationResultResponse, _err error) { //注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 client, _err := createClient(accessKeyId, accessKeySecret, endpoint) if _err != nil { return nil, _err } //運行時參數設置,僅對使用了該運行時參數實例的請求有效 runtime := &util.RuntimeOptions{} //構建請求。 imageModerationRequest := &green20220302.DescribeUrlModerationResultRequest{ // 將提交異步檢測任務時返回值中的ReqId作為獲取結果的入參。例如:DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44 ReqId: tea.String("DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44"), } return client.DescribeUrlModerationResultWithOptions(imageModerationRequest, runtime) } func main() { /** * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 * 常見獲取環境變量方式: * 獲取RAM用戶AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") * 獲取RAM用戶AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ //var accessKeyId= tea.String("建議從環境變量中獲取RAM用戶AccessKey ID"); //var accessKeySecret= tea.String("建議從環境變量中獲取RAM用戶AccessKey Secret"); var accessKeyId = tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) var accessKeySecret = tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) //接入區域和地址請根據實際情況修改 var endpoint = tea.String("green-cip.cn-shanghai.aliyuncs.com") response, _err := invoke(accessKeyId, accessKeySecret, endpoint) if response != nil { statusCode := tea.IntValue(tea.ToInt(response.StatusCode)) body := response.Body imageModerationResponseData := body.Data fmt.Println("requestId:" + tea.StringValue(body.RequestId)) if statusCode == http.StatusOK { fmt.Println("response success. response:" + imageModerationResponseData.String()) } else { fmt.Print("response not success. status:" + tea.ToString(statusCode)) fmt.Println("Error:", _err) } } }
Nodejs SDK
執行如下命令引入相關依賴。
npm install @alicloud/green20220302@2.2.0
接入Nodejs SDK。
提交URL風險檢測任務代碼示例
const RPCClient = require("@alicloud/pop-core"); const { v4: uuidv4 } = require('uuid'); async function main() { // 注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 var client = new RPCClient({ // 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], // 接入區域和地址請根據實際情況修改 endpoint: "https://green-cip.cn-shanghai.aliyuncs.com", apiVersion: '2022-03-02', // 設置http代理 // httpProxy: "http://xx.xx.xx.xx:xxxx", // 設置https代理 // httpsProxy: "https://username:password@xxx.xxx.xxx.xxx:9999", }); // 通過以下代碼創建API請求并設置參數。 var params = { // url檢測service,示例:url_detection_pro "Service": "url_detection_pro", "ServiceParameters": JSON.stringify({ //數據ID唯一標識 "dataId": uuidv4(), //待檢測url鏈接, 公網可訪問。 "url": "https://www.aliyun.com", // 檢測結果回調通知您的URL。 "callback": "http://www.aliyun.com", //隨機字符串,該值用于回調通知請求中的簽名。 "seed": "seedCode", // 使用回調通知時(callback),設置對回調通知內容進行簽名的算法。 "cryptType": "SM3" }) } var requestOption = { method: 'POST', formatParams: false, }; try { //調用接口獲取結果。 var response = await client.request('UrlAsyncModeration', params, requestOption) } catch (err) { console.log(err); } return response; } main().then(function (response) { //返回結果中包含ReqId字段,獲取異步檢測結果時將該字段作為入參,獲取圖片檢測結果 console.log(JSON.stringify(response)) });
獲取URL風險檢測任務結果代碼示例
const RPCClient = require("@alicloud/pop-core"); const { v4: uuidv4 } = require('uuid'); async function main() { // 注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 var client = new RPCClient({ // 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'], accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], // 接入區域和地址請根據實際情況修改 endpoint: "https://green-cip.cn-shanghai.aliyuncs.com", apiVersion: '2022-03-02', // 設置http代理 // httpProxy: "http://xx.xx.xx.xx:xxxx", // 設置https代理 // httpsProxy: "https://username:password@xxx.xxx.xxx.xxx:9999", }); // 通過以下代碼創建API請求并設置參數。 var params = { // 將提交異步檢測任務時返回值中的ReqId作為獲取結果的入參。例如:DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44 "ReqId": "DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44", } var requestOption = { method: 'POST', formatParams: false, }; try { //調用接口獲取檢測結果。 var response = await client.request('DescribeUrlModerationResult', params, requestOption) } catch (err) { console.log(err); } return response; } main().then(function (response) { console.log(JSON.stringify(response)) });
C# SDK
執行如下命令引入相關依賴。
dotnet add package AlibabaCloud.SDK.Green20220302 --version 2.2.0
接入C# SDK。
提交URL風險檢測任務代碼示例
using Newtonsoft.Json; namespace AlibabaCloud.SDK.Green20220302 { public class ImageModerationAutoRoute { public static void Main(string[] args) { /** * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 * 常見獲取環境變量方式: * 獲取RAM用戶AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID") * 獲取RAM用戶AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ String accessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"); String accessKeySecret = Environment.GetEnvironmentVariable( "ALIBABA_CLOUD_ACCESS_KEY_SECRET" ); // 接入區域和地址請根據實際情況修改 String endpoint = "green-cip.cn-shanghai.aliyuncs.com"; //注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 Client client = createClient(accessKeyId, accessKeySecret, endpoint); // 運行時參數設置,僅對使用了該運行時參數實例的請求有效 AlibabaCloud.TeaUtil.Models.RuntimeOptions runtimeOptions = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); //構建URL檢測請求。 Models.UrlAsyncModerationRequest imageModerationRequest = new Models.UrlAsyncModerationRequest(); //url檢測service,示例:url_detection_pro imageModerationRequest.Service = "url_detection_pro"; Dictionary<string, object> task = new Dictionary<string, object>(); //待檢測url鏈接,公網可訪問的URL。 task.Add( "url", "https://www.aliyun.com" ); //待檢測數據的ID。 task.Add("dataId", Guid.NewGuid().ToString()); // 檢測結果回調通知您的URL。 task.Add("callback", "http://www.aliyun.com"); // 隨機字符串,該值用于回調通知請求中的簽名。 task.Add("seed", "seedCode"); // 使用回調通知時(callback),設置對回調通知內容進行簽名的算法。 task.Add("cryptType", "SM3"); imageModerationRequest.ServiceParameters = JsonConvert.SerializeObject(task); try { //調用API獲取檢測結果。 Models.UrlAsyncModerationResponse response = client.UrlAsyncModerationWithOptions(imageModerationRequest, runtimeOptions); // 返回結果中包含ReqId字段,獲取異步檢測結果時將該字段作為入參,獲取圖片檢測結果 Console.WriteLine(response.Body.RequestId); Console.WriteLine(JsonConvert.SerializeObject(response.Body)); } catch (Exception _err) { Console.WriteLine(_err); } } //創建請求客戶端 public static Client createClient( String accessKeyId, String accessKeySecret, String endpoint ) { AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { AccessKeyId = accessKeyId, AccessKeySecret = accessKeySecret, //設置HTTP代理。 //HttpProxy = "http://10.10.xx.xx:xxxx", //設置HTTPS代理。 //HttpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999", //訪問的域名。 Endpoint = endpoint, }; return new Client(config); } } }
獲取URL風險檢測任務結果代碼示例
using Newtonsoft.Json; namespace AlibabaCloud.SDK.Green20220302 { public class ImageModerationAutoRoute { public static void Main(string[] args) { /** * 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。 * 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 * 常見獲取環境變量方式: * 獲取RAM用戶AccessKey ID:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID") * 獲取RAM用戶AccessKey Secret:Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET") */ String accessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"); String accessKeySecret = Environment.GetEnvironmentVariable( "ALIBABA_CLOUD_ACCESS_KEY_SECRET" ); // 接入區域和地址請根據實際情況修改 String endpoint = "green-cip.cn-shanghai.aliyuncs.com"; //注意,此處實例化的client請盡可能重復使用,避免重復建立連接,提升檢測性能。 Client client = createClient(accessKeyId, accessKeySecret, endpoint); // 運行時參數設置,僅對使用了該運行時參數實例的請求有效 AlibabaCloud.TeaUtil.Models.RuntimeOptions runtimeOptions = new AlibabaCloud.TeaUtil.Models.RuntimeOptions(); //構建URL檢測請求。 Models.DescribeUrlModerationResultRequest imageModerationRequest = new Models.DescribeUrlModerationResultRequest(); //將提交異步檢測任務時返回值中的ReqId作為獲取結果的入參。例如:DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44 imageModerationRequest.ReqId = "DFEXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX44"; try { //調用API獲取檢測結果。 Models.DescribeUrlModerationResultResponse response = client.DescribeUrlModerationResultWithOptions( imageModerationRequest, runtimeOptions ); Console.WriteLine(response.Body.RequestId); Console.WriteLine(JsonConvert.SerializeObject(response.Body)); } catch (Exception _err) { Console.WriteLine(_err); } } //創建請求客戶端 public static Client createClient( String accessKeyId, String accessKeySecret, String endpoint ) { AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config { AccessKeyId = accessKeyId, AccessKeySecret = accessKeySecret, //設置HTTP代理。 //HttpProxy = "http://10.10.xx.xx:xxxx", //設置HTTPS代理。 //HttpsProxy = "https://username:password@xxx.xxx.xxx.xxx:9999", //訪問的域名。 Endpoint = endpoint, }; return new Client(config); } } }
如果您在使用過程中出現問題,請加入釘群(釘群號:35573806),聯系產品技術專家進行咨詢。