Monobank.ua API客户端

monobankua的Python项目详细描述


python monobankua

PyPIBuild StatusLicense: GPL v3

用于MonobankAPI的python客户端库。

安装

pip3 install monobankua

要求

  • python=3.7
  • 请求>;=2.21
  • ecdsa>;=0.13.2

用法

个人api

完整的个人api描述请参见https://api.monobank.ua/docs/

  1. https://api.monobank.ua/
  2. 创建令牌
  3. 使用它初始化客户端。

代码片段
fromdatetimeimportdatetime,timedeltafrommonobankuaimportMonobank,MonobankError,MonobankRateLimitError,MonobankUnauthorizedErrortry:currencies_info=Monobank.currencies_info()# you don't need token to get an exchange ratesprint(*currencies_info,sep='\n')token='xxxxxxxxxxxxxxxxxxxxx'monobank=Monobank(token)client_name,webhook_url,accounts=monobank.client_info()print(client_name)print(webhook_url)foraccountinaccounts:print(f'{account.currency.name}: {account}')statements=monobank.statements(account.id,(datetime.now()-timedelta(days=6)).date())print(*statements,sep='\n')exceptMonobankRateLimitError:print('Too many requests. Wait 1 minute, please')exceptMonobankUnauthorizedErrorase:print(f'Some authorization problem: {e}')exceptMonobankErrorase:print(e)

企业api

公司api与个人api有相同的方法,但没有速率限制。

企业api是非个人使用开放式monobank api的唯一途径。

详细说明请参见https://api.monobank.ua/docs/corporate.html

  1. 生成私钥。shell命令示例:
openssl ecparam -genkey -name secp256k1 -rand /dev/urandom -out priv.key
  1. 生成公钥。shell命令示例:
openssl ec -in priv.key -pubout -out pub.key
  1. 请求API访问。使用附加的pub.key(注意-不要使用priv.key!)将服务的简要说明发送到api@monobank.ua.

  2. 因为monobank批准了您的访问,所以您应该请求用户访问。

  3. 现在,将请求id保存到您的db或其他地方,并向用户显示接受url。

  4. 检查用户接受度并使用与个人API相同的所有方法。

代码片段
frommonobankuaimportMonobankCorporateprivate_key='xxxxxxxxxxxxxxxxxxxxx'# from priv.keyrequest_id,accept_url=MonobankCorporate.access_request(private_key,statement=True,personal=True)# you can set webhook URL to be notified about user acceptance:# request_id, accept_url = MonobankCorporate.access_request(private_key, statement=True, personal=True, webhook_url='https://yourservice.com/hook/')monobank_corporate=MonobankCorporate(private_key,request_id)ifmonobank_corporate.access_check():...# normal use the same way as for personal API

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

推荐PyPI第三方库


热门话题
java OnClick用于ListView中的特定项   java如何多次循环相同的TestNG测试。包括课前和课后   java如何在Codenameone中设置BrowserComponent浏览器窗口大小   java Socketchannel始终为空   java以编程方式向JavaFX WebEngine历史添加新条目   java Hibernate+Spring与Oracle一起使用分层查询(从+连接方式开始)   Java中的安卓 getView和Beacon(Estimote)问题   计时器如何在java中设置暂停选项   java为什么输入1000000000000的输出不正确?   java如何在程序执行期间更改log4j2中的日志记录级别   java阻止代码引发XML异常   未找到媒体类型为application/json的java JAX RS MessageBodyWriter   java如何将BuffereImage中的特定颜色(0xFF00FF)设置为透明?   java如何列出web元素,如果网页中没有特定链接的id,如何单击网页中的特定链接?   在Java中读取txt文件时获取EOFEException   java如何避免为每个视图添加inject方法?   JavaSpringController:Facebook上类似文章的永久链接   java在尝试执行脚本时遇到错误“net.serentiybdd.core.exceptions.serentitymanagedexception:No session ID”