CallHub API的Python API包装器
callhub-python-wrapper的Python项目详细描述
CallHub Python包装器
Python的CallHub API客户端包装器
为CallHub API的几个重要函数创建一个干净的(er)python接口。在
安装
pip install callhub-python-wrapper
需要python3.5或更高版本
特点
- 内置(可选)速率限制,考虑CallHub对不同功能的不同速率限制
- 上传带有CallHub中不存在的字段的联系人时,可以更好地处理错误
- 抽象出使用CallHub的API的一些乏味的部分。当上传联系人时,CallHub希望您将CSV列映射到CallHub中每个字段的id,这很难也很容易搞乱。这个包装器通过匹配字段名来处理所有这些。在
- 执行大容量获取时自动处理分页
- 使用异步请求来提高重复调用的速度(在get_contacts中实现)
在最新版本中实施
- 批量创建联系人
- 获取代理排行榜
- 获取所有字段和标识(包括自定义字段)
- 批量获取联系人和字段
- 创建单个联系人
- 获取DNC列表上的所有电话号码
- 获取所有DNC列表
- 在DNC列表中添加/删除编号
- 创建和删除DNC列表
- 获取活动
- 创建电话簿
- 创建/获取/删除webhook
目前正在制定路线图
- 创建/获取团队
- 在团队中添加/删除代理
- 创建/删除代理
- 导出活动
使用
初始化
from callhub import CallHub
# Note the required argument for API domain: Depending on your CallHub account, you
# may have a different API domain below (EG. "https://api-na1.callhub.io")
callhub = CallHub("https://api.callhub.io", api_key="123456789ABCDEF")
联系人和电话簿
^{pr2}$DNC列表
# Get names and ids of all do-not-contact lists
callhub.get_dnc_lists()
# Get all phone numbers marked do-not-contact and the do-not
# contact list(s) that they are associated with
callhub.get_dnc_phones()
# Create a DNC list
list_id = callhub.create_dnc_list("My DNC List Name")
# Delete a DNC list
callhub.remove_dnc_list(list_id)
# Add phone number 555-555-5555 to DNC list id 123456789
results, errors = callhub.add_dnc(["15555555555"], "123456789")
# Add multiple phone numbers to DNC list id 12345689
results, errors = callhub.add_dnc(["15555555555","15554443333"], "123456789")
# Remove number(s) from all DNC lists
errors = callhub.remove_dnc(["15554443333"])
# Remove number(s) from specific DNC list id
errors = callhub.remove_dnc(["15555555555"], "123456789")
性能说明
这充分利用了CallHub内置的bulk-create-API端点,因此作为一个普通的管理员用户,上传联系人的电子表格的速度应该相当。请注意,bulk iu create只能每70秒调用一次,以符合此端点上的特殊CallHub ratelimit。在用10个数字调用add_dnc/remove_dnc比用一个数字调用add_dnc/remove_dnc快十倍
如果使用此库对大多数函数(例如add_dnc)进行循环调用,则可以预期性能约为0.5-1个请求/秒。这是因为所有函数都要等到收到服务器的响应后才退出。在
但是,如果使用联系人列表调用这些函数,则可以获得更快的性能(而不是每次调用一个联系人时调用10次)。这是因为每一个执行许多类似重复API调用的函数都会利用异步请求进行重复调用(发出大量请求,然后等待该请求池完成)。因此,对于大量的数字,我们可以实现每秒向DNC列表中添加5-10个数字的实际速度(CallHub的API限制为20/s)。在
使用get_contacts获取联系人可能需要一段时间
CallHub在使用get_contacts时,每个api请求只给我们10个联系人,所以希望这个库以大约100个联系人/秒的速度获取联系人。这大约需要17分钟来获取100K个联系人!在
- 项目
标签: