Onfido API的官方包装

onfido-python的Python项目详细描述


Onfido Python客户端库

onfido-python on PyPI

版本1.2.0

Onfido的API的官方包装。有关预期请求和响应的详细信息,请参阅完整的API documentation。在

此项目将取代自动生成的api-python-client库(PyPI中的onfido)。在

安装

pip install onfido-python

:警告:同时安装旧的onfido包将导致错误。在

使用

通过使用Api类的实例并提供API来进行API调用 令牌:

importonfidoapi=onfido.Api("<YOUR_API_TOKEN>")

区域

使用base_url参数设置API实例中的区域。在

库将使用默认的基URL(api.onfido.com网站)对于欧盟地区,如果 未指定区域。在

要指定美国地区,请执行以下操作:

^{pr2}$

要指定CA区域,请执行以下操作:

fromonfido.regionsimportRegionapi=onfido.Api("<YOUR_API_TOKEN>",base_url=Region.CA)

有关支持的区域,请参见https://documentation.onfido.com/#regions。在

超时

您可以选择为API中的所有请求设置全局超时 建造师。这需要一个浮点数输入和每个整数 增量对应于一秒。在

例如,要将超时设置为1秒:

api=onfido.Api("<YOUR_API_TOKEN>",timeout=1)

timeout的默认值是None,这意味着不会设置超时 客户端。在

响应格式

Python库将直接从API返回数据。在

更多信息请参见https://documentation.onfido.com/#request,-response-format 信息。在

资源

所有资源在进行API调用时共享同一接口。例如,使用 .create创建资源,.find查找资源,.all获取所有资源 资源。在

申请人

应用程序是执行Onfido检查的对象。在

api.applicant.create(params)# => Creates an applicantapi.applicant.update("<APPLICANT_ID>",params)# => Updates an applicantapi.applicant.delete("<APPLICANT_ID>")# => Schedule an applicant for deletionapi.applicant.restore("<APPLICANT_ID>")# => Restore an applicant scheduled for deletionapi.applicant.find("<APPLICANT_ID>")# => Finds a single applicantapi.applicant.all()# => Returns all applicants

applicant.all()接受以下可选参数:

include_deleted=true:包括计划删除的申请者。 per_page:设置每页的结果数。默认为20。 page:返回特定页面。默认为1。在

注意:调用api.applicant.delete添加申请者和所有相关联的 删除文档、照片、视频、检查、报告和分析数据 排队。请阅读https://documentation.onfido.com/#delete-applicant了解更多信息 信息。在

文件

有些报告类型需要身份证件(护照、驾驶执照等)才能进行处理。在

request_body={"applicant_id":"<APPLICANT_ID>","type":"passport"}sample_file=open("<FILE_NAME>","rb")api.document.upload(sample_file,request_body)# => Uploads a documentapi.document.find("<DOCUMENT_ID>")# => Finds a documentapi.document.download("<DOCUMENT_ID>")# => Downloads a document as a binary dataapi.document.all("<APPLICANT_ID>")# => Returns all documents belonging to an applicant

有关文档类型的示例,请参见https://documentation.onfido.com/#document-types。在

现场照片

现场照片是申请人的面部照片,通常是在提供文件的同时拍摄的。这些照片用于对申请人进行面部相似性照片报告。在

request_body={"applicant_id":"<APPLICANT_ID>","advanced_validation":"True"}sample_file=open("<FILE_NAME>","rb")api.live_photo.upload(sample_file,request_body)# => Uploads a live photoapi.live_photo.find("<LIVE_PHOTO_ID>")# => Finds a live photoapi.live_photo.download("<LIVE_PHOTO_ID>")# => Downloads a live photo as binary dataapi.live_photo.all("<APPLICANT_ID>")# => Returns all live photos belonging to an applicant

检查

对申请人进行检查。根据您希望执行的检查类型,创建申请者时需要不同的信息。支票由一个或多个报告组成。在

request_body={"applicant_id":"12345","report_names":["document","facial_similarity_photo"]}api.check.create(request_body)# => Creates a checkapi.check.find("<CHECK_ID>")# => Finds a checkapi.check.resume("<CHECK_ID>")# => Resumes a paused checkapi.check.all("<APPLICANT_ID>")# => Returns all an applicant's checks

报告

报告提供检查某些部分的结果的详细信息。他们是 在创建检查时创建,因此Onfido API仅支持 找到并列出它们。暂停,特别是用于恢复报告的其他支持 也可以取消报告。在

api.report.find("<REPORT_ID>")# => Finds a reportapi.report.resume("<REPORT_ID>")# => Resumes a paused reportapi.report.all("<CHECK_ID>")# => Returns all the reports in a checkapi.report.cancel("<REPORT_ID>")# => Cancels a paused report

地址查找

Onfido提供地址查找服务,以帮助确保格式正确 创建申请者时提供地址。搜索地址 按邮政编码,请使用:

api.address.pick("SW46EH")# => Returns all addresses in a given postcode

Webhook端点

Onfido还允许您通过API设置和查看webhook端点 通过仪表板。在

request_body={"url":"https://<URL>","events":["report.completed","check.completed"]}api.webhook.create(request_body)# => Registers a webhookapi.webhook.find("<WEBHOOK_ID>")# => Finds a single webhookapi.webhook.edit("<WEBHOOK_ID>",new_webhook_details)# => Edits a webhookapi.webhook.delete("<WEBHOOK_ID>")# => Deletes a webhookapi.webhook.all()# => Returns all webhooks
Webhook验证

如果来自标头的签名等于 期望您为其计算的签名。在

event=verifier.read_payload(raw_event,signature)

有关详细信息,请参见https://documentation.onfido.com/#verifying-webhook-signatures。在

SDK令牌

Onfido允许您通过API生成JSON Web令牌以进行身份验证 用Onfido的sdk。在

request_body={"applicant_id":"<APPLICANT_ID>","application_id":"<APPLICATION_ID>"}api.sdk_token.generate(request_body)# => Creates an SDK token

提取(自动填充)

从文档中提取数据。此终结点仅返回可用于自动填充表单的提取数据。 你必须提供已上载的文档的ID。在

api.extraction.perform("<DOCUMENT_ID>")# => Returns data extracted from the document

错误处理

  • ^每当Onfido返回5xx响应时,就会引发{}
  • ^每当Onfido返回4xx响应时,就会引发{}
  • ^每当来自报头的签名不等于为其计算的预期签名时,将引发{}
  • ^如果发生超时,则引发{}
  • OnfidoConnectionError在任何其他网络错误发生时引发
  • OnfidoUnknownError在发生意外时引发

贡献

  1. 叉开(https://github.com/onfido/onfido-python/fork
  2. 创建您的功能分支(git checkout -b my-new-feature
  3. 运行测试(poetry run pytest tests/test_my_new_feature.py
  4. 提交更改(git commit -am 'Add some feature'
  5. 推到分支(git push origin my-new-feature
  6. 创建新的拉取请求

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
多线程Java(Android)线程每隔一段时间重复任务,并访问值   算法生成添加到目标的所有数学表达式组合(Java作业/面试)   java XML:从SAX内容处理程序中的xsi:type属性查找命名空间uri   java打印字符类型不会产生任何结果   JavaWebLogic。jdbc。扩展。ConnectionAdSqlException:weblogic。常见的资源库。ResourceDeadException   父类的java JFace数据绑定绑定字段   java Javafx TableView始终为空   java如何使我的J2EE web应用程序脱机工作?   java当我使用Android Studio的意图时,没有弹出“包上下文”   java如何更新jar目录中的文件   Java中的新泛型<T>   使用gradle时,java无法在spring引导测试期间加载驱动程序类:“org.h2.driver”   java从安卓向服务器上传图像字节数组文件?   将C#到C再到Java集成时发生OutOfMemoryError/程序崩溃   java我如何只需按下一个按钮就能获得一次安卓位置?   多线程在Java中传递参数或使用静态变量的速度更快?   java Apache Calcite:ReflectiveSchema似乎不支持Linq4j“where”子句的比较表达式中的ParameterExpression   java在安卓:onClick属性的父上下文或祖先上下文中找不到方法   优化javaxx:+UseParNewGC垃圾收集选项仍然有缺陷吗?