TIKI 客户端库为 iOS 提供了一套 API,开发者可以使用这些 API 将数据发布到 TIKI。这个库通过提供授权、许可、捕获和上传的方便方法,简化了将您的 iOS 应用程序与 TIKI 集成的过程。
要开始使用,访问 mytiki.com 并申请测试版访问权。然后我们的团队将为您设置项目提供者 ID 和公钥,这些您将用于配置客户端。
在您的 Podfile
中包含 TikiClient
target 'YourApplication' do
pod 'TikiClient'
end
在执行任何与 TikiClient 库相关的命令之前,您需要对其进行配置。这包括提供在提供者注册期间获得的提供者 ID 和公钥,以及用于生成许可条款的公司信息。
let config = Config(
providerId = "<PROVIDER-ID>", // Provided by TIKI
publicKey = "<PUBLIC-KEY>", // Provided by TIKI
companyName = "ACME Inc",
companyJurisdiction = "Nashville, TN",
tosUrl = "https://acme.inc/tos",
privacyUrl = "https://acme.inc/privacy"
)
TikiClient.configure(config)
TikiClient 是一个单例,用作库的所有功能的入口点。配置设置所有方法使用的参数。
此方法使用 TIKI API 进行身份验证并向 TIKI 注册用户的设备以发布数据。由于必要的 API 调用,这是一个异步方法。
用户 ID 可以是任何标识在应用程序中使用客户端库的用户的不任意字符串。不建议使用个人可识别信息,如电子邮件。如果必要,请使用它的散列版本。
TikiClient.initialize("<the-client-user-id>")
要切换活动用户,请再次调用 TikiClient.initialize
方法。
为了成功捕获和上传收据数据到我们的平台,建立一个有效的用户数据许可协议 (UDLA) 是至关重要的。该协议作为您标准应用程序服务条款的清晰、明确的补充,明确了关键方面
- 用户所有权:它明确承认用户是数据的合法所有者。
- 使用条款:它概述了数据许可和使用的条款。
- 补偿:它定义了交换提供数据的补偿安排。
我们的客户端库通过提供一份预先筛选的协议,其中包含库配置中提供的企业信息,简化了此过程。
使用 TikiClient.terms()
方法检索呈现为 Markdown 格式的许可条款,这样您就可以在用户同意许可其数据之前向他们清晰地展示条款。该协议自动确保无缝集成到许可注册中。
用户同意后,使用 TikiClient.createLicense
方法生成许可。
let license = TikiClient.createLicense()
此方法需要为每个设备调用一次。执行后,许可已在 TIKI 存储中注册,无需在未来重新创建。
客户端库提供了一种可选方法,通过手机设备的摄像头扫描实体收据。
使用 TikiClient.scan()
方法启动收据扫描过程。此方法不会直接返回扫描的收据数据。相反,它通过您提供的回调函数提供数据。
以下是如何使用它的示例
TikiClient.scan() { image: UIImage ->
// Handle the scanned bitmap here
}
在本例中,image
是扫描的收据,回调函数内部的代码(即 // 处理扫描的位图
)是你可以处理或使用扫描数据的地方。
使用 TikiClient.publish
方法将收据图像上传到 TIKI 进行处理。此方法功能丰富,可以接收 TikiClient.scan
方法的输出,或者你的应用程序可以实自定义扫描提取方法,将结果发送到 TikiClient.publish
。
publish
方法接受位图图像或位图图像数组,提供了捕获和扫描多个图像的灵活性,非常适合处理长收据。
let data: UIImage = ... // The scanned receipt
let result = TikiClient.publish(data)
执行此方法将返回一个 CompletableDeferred
对象,当数据已发布时将完成。
使用 TikiClient.publish
方法上传收据图像到 TIKI 后,你可以通过调用 TikiClient.receipt(receiptId)
方法检索与特定收据相关的提取数据。
// Assuming you have the receiptId stored in a variable named 'receiptId'
let receiptData = await TikiClient.receipt(receiptId);
print(receiptData);
注意:从收据的数据提取由亚马逊 Textract 异步执行。处理通常需要几秒钟,但有时可能需要一分钟。请注意,在 TikiClient.publish
之后再立即调用 TikiClient.receipt(receiptId)
可能会导致意外的结果和错误的 404
错误。我们建议在尝试检索提取数据之前给予足够的时间让提取过程完成。
库中的核心 API 接口是 TikiClient
对象,它设计用于抽象授权和 API 请求的复杂性。虽然它是主要入口点,但需要注意库中所有 API 都是公开和可访问的。
有关详细的用法说明,请参阅 TIKI 客户端 API 文档。这个综合资源直接揭示了利用 TIKI 客户端库提供的各种功能的方法。