本文介绍设备助手方案的服务端构建方法。
集成须知
集成前请确认您已了解并完成接入前提的信息和操作。具体信息,请参见前提条件。
服务接入点
SDK安装和下载
QPS限量
接口说明
-
接口名:DescribeFaceGuardRisk
-
全局接入地址:cloudauth.aliyuncs.com(IPv4)或cloudauth-dualstack.aliyuncs.com(IPv6)
-
请求方法:POST和GET
-
传输协议:HTTPS
-
重要
设备助手按照查询成功计量,建议您同一个 Device Token 查询成功后不要再重复查询,避免重复计量。
请求参数
|
名称 |
类型 |
是否必选 |
描述 |
示例值 |
|
ProductCode |
String |
是 |
固定值,传FACE_GUARD。 |
FACE_GUARD |
|
OuterOrderNo |
String |
是 |
您自定义的业务唯一标识,用于后续定位排查问题,支持长度为32位的字母和数字的组合,请确保唯一。 |
e0c34a77f5ac40a5aa5e6ed20c35**** |
|
DeviceToken |
String |
是 |
通过设备助手客户端SDK获取的deviceToken。 |
Tk9SSUQuMS*****************ZDNmNWY5NzQxOW1o |
|
BizId |
String |
否 |
本次业务认证的唯一ID,主要配合设备助手用于查询时校验。 |
1000******0001 |
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
RequestId |
String |
请求ID。 |
130A2C10-B9EE-4D84-88E3-5384FF039795 |
|
Message |
String |
请求信息的响应消息。 |
success |
|
Code |
String |
返回码,200指接口响应成功。详细认证结果判断,请参见返回Code和Message。 |
200 |
|
ResultObject.RiskTags |
String |
设备风险标签。 |
ROOT,VPN,HOOK 说明
多个设备风险标签以半角逗号(,)分隔。 您可以通过设备风险标签了解所有标签及其含义。 |
|
ResultObject.RiskExtends |
String |
拓展信息。 |
|
|
ResultObject.GuardRiskScore |
Double |
设备助手算法预测的设备风险可能性,分数越高代表设备风险越高。 分值取值:0~100。 |
80 |
SDK调用示例
调用示例默认使用Java语言演示,其他语言示例参见其他语言支持。
环境变量和依赖
-
重要
集成前请确认您已获取AccessKey,并已配置环境变量。具体操作,请参见:
-
在Java工程的
pom.xml中引入依赖。重要SDK依赖请使用最新版本,并在测试稳定后固定版本号,最新版本和离线包,请参见集成须知>SDK安装和下载。
<dependency> <groupId>com.aliyun</groupId> <artifactId>cloudauth20190307</artifactId> <version>LATEST</version> </dependency>
调用接口
代码示例仅展示最基础的接口调用能力,实际使用时请根据业务需求情况加以优化和重构。
例如,代码中变量名为credentialClient、config、client等通用对象在实际使用时,建议根据业务需求情况优化为单例模式,以提升性能。这些对象在示例代码中标有建议使用单例模式的字样。
package com.aliyun.Sample.Cloudauth20190307;
import com.aliyun.cloudauth20190307.models.DescribeFaceGuardRiskResponse;
import com.aliyun.tea.TeaException;
import com.google.gson.Gson;
import java.util.UUID;
public class DescribeFaceGuardRiskDemo {
public static com.aliyun.cloudauth20190307.Client createClient() throws Exception {
// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
// 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/zh/sdk/developer-reference/v2-manage-access-credentials
// 建议使用单例模式
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Endpoint 请参考 https://api.aliyun.com/product/Cloudauth
config.endpoint = "cloudauth.aliyuncs.com";
return new com.aliyun.cloudauth20190307.Client(config);
}
public static void main(String[] args_) throws Exception {
// 建议使用单例模式
com.aliyun.cloudauth20190307.Client client = DescribeFaceGuardRiskDemo.createClient();
//发起请求
com.aliyun.cloudauth20190307.models.DescribeFaceGuardRiskRequest describeFaceGuardRiskRequest = new com.aliyun.cloudauth20190307.models.DescribeFaceGuardRiskRequest()
.setProductCode("FACE_GUARD")
.setDeviceToken("<客户端获取的DeviceToken>")
.setOuterOrderNo("7648ae2ce2ad423ea8a8d6de1676****")
.setBizId(UUID.randomUUID().toString());
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions()
.setReadTimeout(3000)
.setConnectTimeout(3000);
try {
// 调用DescribeFaceGuardRisk接口,获取识别结果。
DescribeFaceGuardRiskResponse response = client.describeFaceGuardRiskWithOptions(describeFaceGuardRiskRequest, runtime);
System.out.println(new Gson().toJson(response));
} catch (TeaException error) {
// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
// 错误 message
System.out.println(error.getMessage());
// 诊断地址
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
} catch (Exception _error) {
TeaException error = new TeaException(_error.getMessage(), _error);
// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
// 错误 message
System.out.println(error.getMessage());
// 诊断地址
System.out.println(error.getData().get("Recommend"));
com.aliyun.teautil.Common.assertAsString(error.message);
}
}
}
其他语言支持
您可以在OpenAPI平台中查看其他语言的SDK调用示例。
每种语言对应的SDK安装信息在示例代码的右上角可以查看。