通过FinTS将您的ING德国银行对账单导入YNAB

ing-ynab的Python项目详细描述


ing-ynab logo

ciPyPIPyPI - Python VersionPyPI - License

通过FinTS将您的ING德国银行对账单导入YNAB。在

设置

在设置这个之前,请 register your FinTS product –免费,只需几天。
如果不这样做,应用程序将从 python-fints库,它应该只 用于评估。在

由于此应用程序需要您的ING pin和YNAB访问令牌 建议在您的本地网络中运行此程序(可以是一个Raspberry Pi,它是 相当轻)。在

应用程序将写入最后导入的事务的最后日期和哈希 到state文件。如果您在容器中使用它,请务必将其安装到 防止重复。在

启动应用程序有多种方法:

局部

这可以在任何使用python3.8或更高版本的环境中运行。在

$ python3 -m pip install ing-ynab
$ touch .env # see configuration section
$ ing-ynab

Docker

^{pr2}$

docker撰写

version: "2.0"

services:
  ing-ynab:
    image: docker.pkg.github.com/bahlo/ing-ynab/ing-ynab:1.1.1
    volumes:
      - ${PWD}/ing_ynab_state:/app/state
    environment:
      # Environment variables, see the configuration section

配置

通过环境变量完成配置:

  • START_DATE:开始获取事务的日期(默认为今天)。在
  • SLEEP_INTERVAL:下一次检查之前的间隔(秒) (默认为5分钟)。在
  • FINTS_PRODUCT_ID:您的FinTS产品标识(python FinTS-one的deafults)。在
  • ING_LOGIN:ING帐户的登录标识。在
  • ING_IBAN:要添加的帐户的IBAN。在
  • ING_PIN:您的ING帐户的pin(保留为空将得到提示)。在
  • YNAB_ACCESS_TOKEN:转到您的预算设置创建一个(留空) 待提示)。在
  • YNAB_BUDGET_ID:在预算的网页上,路径中的最后一个数字。在
  • YNAB_ACCOUNT_ID:在帐户的网页上,路径中的最后一个uuid。在
  • YNAB_FLAG_COLOR:如果设置了,则对导入的事务使用该颜色。在
  • DEBUG:设置为1以启用调试输出并打印事务,而不是 导入它们。在

安全

您可以通过环境变量传入您的银行pin和YNAB访问令牌, 如果你愿意的话。这有一个缺点,任何有系统访问权限的人都可以阅读 并有可能使用它们,因此不鼓励(但支持)。在

另一种选择是不指定YNAB_ACCESS_TOKEN和/或ING_PIN,这 将导致应用程序在启动时提示您。这有一个缺点 每次应用程序重新启动时都需要输入它们。在

对于docker,您需要传递-it标志才能输入这些标志 变量。对于docker compose,添加以下字段:

  tty: true
  stdin_open: true

docker-compose up -d开头后,运行docker attach $container_id 附在容器上。请注意,输入pin的提示可能已隐藏, 所以你必须直接输入密码。在

常见问题解答

为什么只有这个?FinTS不是一个通用的协议吗?

是的,但是实现方式有很大的不同。这实际上是一个 但我只能真正的测试,我宁愿有一个 专业图书馆比我不能保证的多用途图书馆 功能。在

你能支持我的银行吗?

python-fints库支持 很多银行,所以可能。但我们需要合作,因为我无法测试。 随时联系:hallo@arne.me

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

推荐PyPI第三方库


热门话题
java允许具有不同父类的类扩展类,而无需多重继承   java如何创建动态化的JScrollPane w/JPanel作为客户端?   java如何组织和命名包   在Java中读取属性文件   java无法解释的Android意图行为   在Java中动态执行多个BPEL文件的部署   ssl Java 6 SNI(服务器名称指示)?   java我们可以使用Robot框架自动化web和移动应用程序来执行并行执行   java for star pettern的循环   java为什么BinaryReader在线程中,从netty读取错误的数据包?   在java中将华氏度转换为摄氏度   使用Spark和java处理空值和引号编写CSV文件   Java中已排序日期到块的列表   visual studio代码VSCode Java不是linting或自动完成局部变量,而是自动完成Java快捷方式,如“sysout”