Skip to content
 
 

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

微信支付宝账单聚合

你是否因为一笔一笔记账太繁琐,无法坚持下去(doge

你是否因为支付宝和微信账单分开统计感到厌烦(doge

此前已经有人尝试过使用 Notion API 进行记账,但手动下载解压再导入实在不够优雅。 该项目基于 Notion API + Python 实现支付宝与微信账单聚合,使用 zmail 模块以邮件的方式实现更优雅的记账

实现原理是通过解析微信与支付宝提供的账单压缩包中的 .csv 文件,使用 Notion API 向 Table 中添加记录,实现记账的功能

前置条件

  • 注册 Notion 账号并开通一个集成(integration)以使用 Notion API,获取 API 的密钥,后面需要使用,可以参考其他大佬的图文 (Notion API 探索笔记(一) - 知乎 (zhihu.com))
  • python 3.8+ 的环境
  • 两个邮箱:一个用于接收账单信息与通知,作为服务端,需要开通 POP 功能;一个用于发送解压密码与接收消息通知,作为客户端

创建 Notion 数据库

可选使用模板导入或手动创建

模板导入(推荐)

  1. 使用已上线的模板 (聚合记账) 导入
  2. 在该模板中的内嵌数据库中点击查看数据库

image

  1. 右上角的菜单中选择拷贝链接,在该网址中找到页面的 id,url 形如 notion.so/你的id?v=xxx,将 id 的部分记下

image

手动创建

  1. 创建一个 page
  2. 在 page 中创建一个 table
  3. 在网页中打开你刚刚创建的包含 table 的页面,在网址中找到那个页面的 id,url 形如 notion.so/你的id?v=xxx,将 id 的部分记下
  4. 编辑你的数据库,设置以下属性

注:数据库本身会创建一个不可删除的 title 属性,将其作为 <账单信息> 属性

  • 日期 类型:date
  • 星期 类型:select (周一, 周二, 周三, 周四, 周五, 周六, 周日)
  • 账单信息 类型: title(就是它)
  • 金额 类型:number
  • 交易平台 类型:select (微信, 支付宝)
  • 支付类型 类型:select (收入, 支出)
  • 交易方式 类型:text
  • 平台交易号 类型:text

配置 conf.yaml 文件

  • email.server 中填写服务端的邮箱地址与密码。注:密码一般使用的是 POP 授权码
  • email.user_address 中填写客户端的邮箱地址
  • notion.token 中填写 Notion API 的密钥
  • notion.type 中填写父页面类型,这里作为数据库使用,填写 database_id
  • notion.database_id 中填写你的数据库 id

测试

将 conf.yaml 的 test_server 属性设置为 True

运行 main.py,查看终端输出。若显示通过,则说明服务端的邮箱连接正常

运行

将 conf.yaml 的 test_server 属性设置为 False

运行 main.py,程序将会监听服务端邮箱是否收到支付宝或微信的账单邮件,收到后将会解析并向你的客户邮箱发送解压密码请求邮件,请直接对那封邮件回复6位数密码,同步完成后将会返回告知邮件

About

基于 Notion API + Python 实现支付宝与微信账单聚合

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages