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),联系产品技术专家进行咨询。