性感的infusionsoft xml-rpc api客户端

infusionsoft-client的Python项目详细描述


https://img.shields.io/badge/License-Apache%202.0-blue.svghttps://badges.gitter.im/they4kman/infusionsoft-client.pnghttps://badge.fury.io/py/infusionsoft-client.svg

一个简单易用的Infusionsoft XML-RPC API客户端,包含用于代码检测的存根。仅限Python3.5+(但是拉请求欢迎:smirk:)。

安装

pip install infusionsoft-client

快速启动

首先,使用应用程序名和api密钥初始化客户端:

importinfusionsoftinfusionsoft.initialize('myapp','098f6bcd4621d373cade4e832627b4f6')

使用infusionsoft就像使用常规的xmlrpc.client.ServerProxy

importinfusionsoftcontact_id=infusionsoft.ContactService.add({'FirstName':'Johnny'})

设置XML-RPC客户端选项

传递给initialize()的任何额外Kwargs都将传递给xmlrpc.client.ServerProxy

importinfusionsoftinfusionsoft.initialize('myapp','098f6bcd4621d373cade4e832627b4f6',use_builtin_types=True)

一些关卡的兴趣是:

  • use_builtin_types:是否使用本机python类型,而不是像xmlrpc.client.DateTimexmlrpc.client.Binary这样的包装器。i建议打开此选项。它将在下一个主要/中断版本中默认打开。
  • verbose:设置为True,打印每个rpc调用的请求和响应体。
  • allow_none:是否允许通过线路发送None。infusionsoft通常不允许None(用xml-rpc术语来说就是nil)。如果响应中的字段为空,infusionsoft将不会发送它。
  • retries:重试失败请求的次数。请求会在连接/套接字错误和“invalidconfig”错误时重试(如果您从未见过它们,我羡慕您)。任何其他类型的故障仍然会引发异常。

有关详细信息,请参见the docs

与django一起使用

infusionsoft-client包括一个现成的django集成。只需将其添加到您的INSTALLED_APPS

INSTALLED_APPS=(# ...'infusionsoft.contrib.django',)

并将应用程序名称和API密钥添加到您的设置中:

INFUSIONSOFT_APP_NAME='myapp'INFUSIONSOFT_API_KEY='098f6bcd4621d373cade4e832627b4f6'

使用INFUSIONSOFT_CLIENT_OPTIONS

INFUSIONSOFT_CLIENT_OPTIONS={'use_builtin_types':True,}

获取查询的所有行

有些api调用是分页的,需要多次调用才能检索所有结果。这可能是一个痛苦,你可能会发现自己写相同的代码一遍又一遍。为此,infusionsoft-client提供了一个consume()生成器函数,它将使用任何查询函数的所有页面。

要使用它,请创建一个lambda(或正则)函数,该函数使用pagelimit作为参数来执行分页api调用,并将其传递给consume()

importinfusionsoftfrominfusionsoft.queryimportconsumequery_fn=lambdapage,limit:(infusionsoft.DataService.query('mytable',limit,page,['Id']))# Use with a for-loop, to avoid storing all rows in memory:forrowinconsume(query_fn):do_stuff(row)# Or retrieve all rows at onceall_rows=list(consume(query_fn))

生成代码存根

infusionsoft-client一起提供的是下载正式infusionsoft xml-rpc文档、用BeautifulSoup解析它们并为所有方法生成与python 3.5兼容的存根的代码。

要自己生成这些文件,请首先安装附加要求:

pip install -r stub-requirements.txt

然后运行generate_stubs()函数,它将返回一个字符串:

frominfusionsoft.gen_stubsimportgenerate_stubssource=generate_stubs()

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

推荐PyPI第三方库


热门话题
java Play Framework 2.1中的简单搜索?   java:Springbeans的真正工作原理   java不能从字符串中提取数字   不同管道中的java共享ExecutionHandler   在Java中,如何为扩展comparator的类实现多个comparator方法?   通用混沌Java   java问题:从自定义类获取要添加到驱动程序类的形状   java如何利用HikariCP和Hibernate?   eclipse如何执行Java应用程序?   用户界面Java Swing:如何将JLabel的文本绑定到JTable选定行中的列?   java替换JPanel元素而不添加到面板的末尾?   java Sets根据action命令在按钮组中选择了特定的jradiobutton   在java中如何将从控制台添加的字符串中的元素添加到列表中   处理未在浏览器上运行的Java签名小程序   java如何在我的安卓应用程序中单击任意按钮时禁用音频音调?   编码如何在Java中将十六进制转换为utf8编码的字符串   java JSF Spring安全集成问题   java如何更正Oracle for Windows中的字符?   java Spark结构化流媒体:当前批次落后   java Hibernate根据最匹配的条件排序结果