人脸核身提供服务端SDK帮助您在服务端依据被验证的人名和身份证号码,请求身份验证的用户图像信息。
阿里云视觉智能开放平台各类目视觉AI能力API接入、接口使用或问题咨询等,请通过钉钉群(23109592)加入阿里云视觉智能开放平台咨询群联系我们。
成为开发者
请您使用阿里云账号登录阿里云视觉智能开放平台。如还未持有阿里云账户,请先注册阿里云账号。
开通服务
调用人脸核身的API前,您需要开通人脸人体服务。在进行人脸核身认证时,需要先将图片上传至上海地域的OSS Bucket中进行文件URL处理,通过图片URL链接传入图片数据。关于如何开通OSS服务请参见开通OSS服务。下面为您介绍如何开通人脸人体服务。
- 登录阿里云视觉智能开放平台。
- 在顶部菜单栏的能力广场中单击人脸人体。
- 在人脸人体页面中单击立即开通。说明 对于公测期免费能力,在页面中显示免费开通;对于商业化付费能力,在页面中显示立即开通,开通后不调用不计费,调用后开始收费。
- 确认开通地域并勾选服务协议后,单击立即开通。
页面提示服务开通成功。
说明 开通了人脸人体服务后,该服务下的所有API均可以直接调用,不需要再单独开通。
文件URL处理
RAM授权
您还需要为您的账户进行RAM授权,以访问相应的阿里云资源。授权操作详情请参见使用RAM Policy控制访问权限。
添加依赖包
请根据您的代码选择添加不同的依赖包。
Java
(推荐)在您的Java项目中添加人脸人体服务的POM依赖。
<!-- https://mvnrepository.com/artifact/com.aliyun/facebody20200910 --> <dependency> <groupId>com.aliyun</groupId> <artifactId>facebody20200910</artifactId> <version>${aliyun.facebody.version}</version> </dependency>
您也可以下载人脸人体服服务的SDK包直接引用。
AI类目
SDK包名称
SDK链接
Github链接
人脸人体
facebody20200910
Python
打开命令提示符窗口,依次执行如下命令安装Python SDK。
pip install alibabacloud_facebody20200910
配置环境变量
配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维,具体操作,请参见创建RAM用户。
请不要将AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
请求示例
请求示例如下:
Java请求示例
说明请将如下代码示例中的
<accessKeyId>
和<accessSecret>
替换为您的真实AccessKey信息。如何获取AccessKey请参见创建AccessKey。import com.aliyun.facebody20200910.models.ExecuteServerSideVerificationRequest; import com.aliyun.facebody20200910.models.ExecuteServerSideVerificationResponse; import com.aliyun.teaopenapi.models.Config; import com.aliyun.teautil.models.RuntimeOptions; import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; public class TestExecuteServerSideVerification { public static void main(String[] args) { try { // 创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html。 // 如果您使用的是RAM用户的AccessKey,还需要为RAM用户授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html。 // 从环境变量读取配置的AccessKey ID和AccessKey Secret。运行代码示例前必须先配置环境变量。 com.aliyun.facebody20200910.Client client = createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); ExecuteServerSideVerificationRequest request = new ExecuteServerSideVerificationRequest(); request.setCertificateName("真实姓名"); request.setCertificateNumber("身份证号"); request.setFacialPictureUrl("图像URL地址"); request.setSceneType("server"); RuntimeOptions runtime = new RuntimeOptions(); Map<String, String> headers = new HashMap(); headers.put("Accept-Encoding", "identity"); ExecuteServerSideVerificationResponse response = client.executeServerSideVerificationWithOptions(request, headers, runtime); System.out.println("ExecuteServerSideVerificationResponse response: " + new Gson().toJson(response)); } catch (Exception e) { e.printStackTrace(); } } public static com.aliyun.facebody20200910.Client createClient(String accessKeyId, String accessKeySecret) throws Exception { Config config = new Config(); // 您的AccessKey ID config.accessKeyId = accessKeyId; // 您的AccessKey Secret config.accessKeySecret = accessKeySecret; // 访问的域名 config.endpoint = "facebody.cn-shanghai.aliyuncs.com"; return new com.aliyun.facebody20200910.Client(config); } }
Python请求示例
说明请将如下代码示例中的
<accessKeyId>
和<accessSecret>
替换为您的真实AccessKey信息。如何获取AccessKey请参见创建AccessKey。from alibabacloud_facebody20200910.client import Client from alibabacloud_tea_openapi.models import Config from alibabacloud_tea_util.models import RuntimeOptions from alibabacloud_facebody20200910.models import ExecuteServerSideVerificationRequest config = Config( # 创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html。 # 如果您用的是RAM用户的AccessKey,还需要为RAM用户授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html。 # 从环境变量读取配置的AccessKey ID和AccessKey Secret。运行代码示例前必须先配置环境变量。 access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'), access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), endpoint='facebody.cn-shanghai.aliyuncs.com', region_id='cn-shanghai', type='access_key' ) # init RuntimeObject runtime_option = RuntimeOptions() # init Client client = Client(config) request = ExecuteServerSideVerificationRequest( certificate_name="真实姓名", certificate_number="身份证号", facial_picture_url="图像URL地址" ) response = client.execute_server_side_verification_with_options(request, headers={"Accept-Encoding": "identity"}, runtime=runtime_option) print(response)
结果示例
该接口的请求结果示例如下。
{
"RequestId": "1638718D-C4BA-4009-845D-AC26CACB8354",
"Data": {
"Pass": true,
"VerificationToken": "f2a6bb31a5a9f04edd68eab08045****",
"Reason": "认证通过(Z8120)"
}
}
从返回结果来看,该图片的人脸与人名和身份证号码相匹配,认证通过。具体信息如下:
RequestId:请求ID。
Pass:验证结果为通过。
VerificationToken:验证Token。
Reason:认证通过。