通过自己编写的申请访问自己的银行账户
我已经使用 MS Money 好几年了,由于我的“编码兴趣”,很高兴知道从哪里开始学习编写此类应用程序的基础知识。更好的说法是:这不是关于如何设计和编写应用程序,而是关于“银行详细信息”。 (一开始就显示某个银行帐户的金额对我来说是一个愉快的目标。)。
我想用 C++ 或 Java 来做,因为我已经习惯了这些语言。
对于一个业余爱好项目来说它会“太大”吗?我对所有安全问题、银行服务器接口/技术等了解不多。
首先,在“不”之后,我需要一个可靠的学习来源。
I have used MS Money for several years now and due to my "coding interest" it would be great to know where to start learning the basics for programming such an application. Better to say: Its not about how to design and write an application, its about the "bank details". (Just displaying the amount of a certain bank account for the beginning would be a pleasant aim for me.).
I would like to do it in C++ or Java, since I'm used to these languages.
Will it be "too big" for a hobby project? I do not know much about all the security issues, the bank server interfaces/technique, etc.
At the first place after a "no" I need a reliable source for learning.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我使用过的大多数应用程序都会读取从银行网站导出的文件,这相对简单。
如果您打算走这条路,则需要编写代码:
Most of the apps I've worked with read in a file exported from the bank's website, which is relatively straight forward.
If that's the road you're looking to go down you'll need to write code to:
在未经银行明确书面许可的情况下尝试以编程方式与银行网站进行交互时,首先要记住的事情很可能是违反网站使用协议,并且可能会给您带来比其价值更多的麻烦。
其次,您不想通过尝试解决如此庞大且敏感的问题来开始“学习”编程。并不是说最终的目标有什么问题,而是这是一个一千里的旅程,你需要迈出第一步。
我想说从简单的编程环境开始,比如 python 或 perl。原因是,您不必担心链接、库、代码生成等。习惯您想要实现的功能的基础知识,下一步将是用 C++ 或 Java 重新实现它们。
首先专注于学习客户端-服务器编程。
编写客户端,编写服务器,学习有关套接字的所有知识,学习有关 TCP 编程的所有知识,
然后学习安全套接字层 (SSL) 和传输层安全性 (TLS)。
完成此操作后,尝试切换到 C++ 或 Java,看看是否可以重复效果。
关于这些主题有大量的教程。
一旦您习惯了这一点,请了解哪些工具和库已经可以用于执行最常见的操作。例如,libcurl 非常适合创建常见的互联网应用协议客户端(HTTP、HTTPS、FTP 等)。
看看是否可以创建一个交互式程序,您可以使用 Web 浏览器“登录”该程序,该程序以 XML 格式输出内容并使用级联样式表对其进行格式化。
这应该会带你进入 javascript 世界,那里有 jquery 等强大的工具。如果你正确地混合和匹配这些,你会发现开发会很有趣而且相当快。
:-)
旅途愉快。
The first thing to remember when trying to programmatically interact with a banking website without express written permission from the bank will MOST LIKELY be a violation of the website use agreement, and may land you in more trouble than it's worth.
Second, you DON'T want to start 'learning' programming by trying to tackle something that massive and sensitive. Not that there is anything wrong with the eventual goal, but that's a journey of a thousand leagues and you need to take your first step.
I would say start with a simple programming environment, like python, or perl. Reason, you don't have to worry about linking, libraries, code generation etc. Get used to the basics of what you want to achieve functionally, them reimplementing that in C++ or Java would be the next step.
To begin with focus on learning client-server programming.
Write a client, write a server, learn all about sockets, learn all about TCP programming,
then learning about secure socket layers (SSL) and transport layer security (TLS).
Once you've done this, try switching to C++ or Java and see if you can repeat the effect.
There are TONS of tutorials on these topics.
Once you have become used to that, learn what tools and libraries are already available to do most common things. For example libcurl is great for creating common internet application protocol clients (HTTP, HTTPS, FTP and the like).
See if you can create an interactive program that you can "log in to" using your web browser which outputs stuff in XML and formats it using cascading style sheets.
This should lead you into javascript world, where there are powerful tools such as jquery. If you mix and match these correctly, you will find that development can be a LOT of fun and quite rapid.
:-)
Happy journeying.
我认为这是一个相当合理的爱好项目;从一个简单的分类账开始,然后您可以添加功能。
为了开始这样的项目,我会做一些事情:
从那里,如果有必要的话,写一些设计笔记并开始编码!
I think its quite a reasonable hobby project; start with a simple ledger and then you can add features.
A few things I would do to begin such a project:
From there, write up some design notes if warranted and start coding!
您是否正在寻找 mint.com 的内容?根据我对他们安全政策的理解,他们是这样做的:您向他们提供您的在线帐户凭据,他们立即将其提供给银行并取回“只读”帐户登录信息。然后,他们会丢弃您提供的凭据,并使用“只读”凭据每 24 小时更新一次您的指标。我不知道他们是如何做到这一点的,也不知道他们是否与银行有特殊关系,但这是可能的。
Are you looking for something mint.com-ish? From my understanding of their security policy this is how they do it: You give them your online account credentials which they give immediately to the bank and get back a "read-only" account login. They then throw away the credentials you provided and use "read-only" credentials to update your metrics every 24 hours. I don't know how they do this or if they have a special relationship with the banks, but it is possible.
您可以查看OFX4J,它是开放金融交换规范,还讨论了
You might look into OFX4J, an implementation of the Open Financial Exchange specification, also discussed here.
我不认为很多(如果有的话)银行提供API。
瑞典的在线预算应用程序似乎依赖于以某种 Excel 格式导出交易,或者只是让您“在文本框中按 ctrl-c 然后按 ctrl-v 标记银行系统中的所有交易”,这然后是解析。
I don't think many (if any) banks provides api's.
Online budget-apps in Sweden seem to rely either on exporting transactions in some excel format, or simply have you "mark all transacations in the banksystem, ctrl-c then ctrl-v in a textbox", which is then parses.