自动化记账接口
此接口只对钱迹 Android 版有效
自动化记账?
自动化记账,是钱迹针对 Tasker 等第三方的自动化工具提供的一个插件功能(以下以Tasker为例说明),通过 Android 的 Uri-Scheme 机制,Tasker 发起一个 Browser URL
的任务,将账单的参数传递给钱迹,进而实现自动化记账。
隐私提醒
- 自动化提供的 Uri 是钱迹自定义的固定格式,Tasker 只能传入数据,并不能从钱迹获得数据,所以,不会造成账单数据泄漏。
- 自动化提供的 Uri 需要用户在自己的 Tasker app 手动配置才能使用,如果担心隐私问题,可以不用使用此功能
- 钱迹只是根据 Tasker 传递的数据,自动生成一条账单,账单中的金额、分类、备注、类型、均由用户自己定义。
Uri-Scheme 参数配置
完整版示例
收入或支出
qianji://publicapi/addbill?&type=0&money=26.5&time=2020-01-31 12:30:00&remark=在星巴克购买咖啡&catename=咖啡&accountname=微信&bookname=日常账本
转账或信用卡还款
qianji://publicapi/addbill?&type=2&money=26.5&time=2020-01-31 12:30:00&remark=在星巴克购买咖啡&accountname=微信&&accountname2=招行信用卡&bookname=日常账本
简化版示例
收入或支出
qianji://publicapi/addbill?&type=0&money=26.5&catename=咖啡
转账或信用卡还款
qianji://publicapi/addbill?&type=2&money=26.5&accountname=微信&accountname2=招行信用卡
转账或信用卡还款(带手续费)
qianji://publicapi/addbill?&type=2&money=26.5&accountname=微信&accountname2=招行信用卡&fee=.05
弹出选择分类面板的示例
收入或支出
qianji://publicapi/addbill?&type=0&money=26.5&catechoose=1&catetheme=light
参数拼接方法
[固定前缀]+&[参数一]=[值一]&[参数二]=[值二]&[参数三]=[值三]
Uri-Scheme 格式其实和 https://www.google.com
这种常见的链接一样,有固定前缀和参数拼接而成。
目前钱迹对外提供的参数总共限定这几个:type
money
time
remark
catename
bookname
accountname
accountname2
,下面将详细说明。
参数解释
参数 | 释义 | 示例 | 是否必须 |
---|---|---|---|
固定前缀 | 值固定为 qianji://publicapi/addbill? |
是 | |
type | 账单类型,目前支持五种: 0支出,1收入,2转账,3信用卡还款(非债务的还款),5 报销,不填写 type 参数,则默认为支出,如果填写其他值,将提示参数错误 |
&type=0 | 是 |
money | 账单金额,支持 Doubel 、Float 、Int 三种数据类型,小数点最多可以精确到2位,金额值必须大于0,否则将提示参数错误 |
&money=26.5 | 是 |
time | 账单时间,格式必须为 yyyy-MM-dd HH:mm:ss ,不填写 time 参数则默认为手机当前时间,格式不匹配则将提示参数错误 |
&time=2020-01-31 12:30:00 | 否 |
remark | 账单备注信息,默认为空 | &remark=在星巴克购买咖啡 | 否 |
catename | 账单分类,此参数是代表分类的名称,如果不填写,则默认使用 其它 这个分类,如果提供的 catename 在钱迹分类中无法找到,也会自动使用 "其它" 这个默认分类,注:转账或还款不需要此参数 |
&catename=咖啡 | 否 |
catechoose | 弹出选择分类面板,如果catechoose=1,则代表会弹出一个分类选择面板来选择分类,如果不填写或是值不是1,则不弹出。注:此参数只有 type=0 或 type=1 时有效,且与catename 二选一,如果有catechoose ,则参数catename 无效 |
&catechoose=1 | 否,Android端版本>=3.1.2有效 |
catetheme | 选择分类面板的主题样式,配合 catechoose 参数一起使用,默认为黑色主题,如果 catetheme=light,则选择面板是白色,如果 catetheme=auto,则会根据系统主题来自动适配 |
&catetheme=auto | 否,Android端版本>=3.1.2有效 |
bookname | 账单所属账本名称,可以自己指定账单属于哪一个账本,如果钱迹中没有此名称的资产,则提示参数错误,不填写则使用默认账本 | &bookname=日常账本 | 否 |
accountname | 账单所属资产名称(或转账的转出账户),如果钱迹中没有此名称的资产,则提示参数错误 | &accountname=微信 | 转账(信用卡还款)必须 |
accountname2 | 转账或者还款的转入账户,如果钱迹中没有此名称的资产,则提示参数错误 | &accountname2=招行信用卡 | 转账(信用卡还款)必须 |
fee | 转账或者信用卡还款的手续费,传入金额,必须>0,且 <money 。需要额外注意的是,如果想传入手续费,则 money 参数提供的金额,必须是包含 fee 参数的金额的,比如 money=2.0&fee=1.0 则代表 money 中,有 1.0 元的手续费。最终生成的账单金额为 2.0 元,且有 1.0 元的手续费,转入账户入账金额为 (money-fee)=1.0 元,转出账户扣除金额为 2.0 元 | &fee=1.5 | 否 Android端版本>=3.1.6 有效 |
showresult | 控制是否显示记账成功提示,=0 不显示,其他值都显示 | &showresult=0 | 否 Android 端版本>=3.2.1.10 有效 |
关于分类参数 catename 的改进
- 自钱迹 Android 4.0.5b12 开始,对 catename 进行了扩展,支持传入一二级分类名称。
- 通过特殊符号
/::/
来分割一二级名称,比如catename=三餐/::/午餐
,代表一级分类是三餐
,二级分类是午餐
。 - 如果不带
/::/
符号,则跟旧逻辑一致,即查找第一个匹配的分类名称(无论该名称是否一级或者二级)。 - 如果以上规则找不到匹配的分类,则会自动使用
其它
这个默认分类。
内置调试方法
打开钱迹,进入 设置-关于
页面,然后点击 实验室
——记账接口调试
,进入后可按照页面指示进行调试。
Tasker 中配置 Browse URL 截图示例
注意
- 第三方工具必须按照钱迹提供的 Url-Scheme 格式传入参数,才能准确完成记账流程
- 由于自动化参数中可能带有账本和资产数据,所以为了简化处理,自动化记账需要注册登录后才可以使用
- 为避免恶意使用,限制客户端 3s 内只能提交一次自动记账,请勿恶意绕过此规则进行记账
如何调试?
Uri-Scheme 其实是Android系统提供的一项技术标准,所以,除了在 Tasker 中通过 Browser URL
调试之外,也可以利用手机浏览器来调试:
- 安装最新版钱迹后,登录账号;
- 打开手机浏览器,在地址栏输入配置好的链接,然后加载;
- 如果配置正确,钱迹会在屏幕底部弹出 "自动记账成功!" 的Toast提示;
- 如果参数错误,钱迹会在屏幕下方提示具体错误信息。
正确提示:
参数错误提示:
更新记录
- Android v3.1.2 增加
catechoose
和catetheme
参数,用于手动选择分类 - Android v3.1.6 增加
type=5
,用于记录报销账单 - Android v3.1.6 增加
fee
参数,用于转账(信用卡还款)时的手续费 - Android v3.1.6 修复转账时,如果 accountname2 为空则闪退的问题
- Android v3.2.1.10 增加
showresult
参数,控制是否显示记账成功提示