Telnyx API 的 Python 绑定
项目描述
Telnyx Python 库
Telnyx Python 库提供从以 Python 语言编写的应用程序对 Telnyx API 的便捷访问。它包括一组用于 API 资源的预定义类,这些类从 API 响应中动态初始化,使其与各种 Telnyx API 版本兼容。
文档
安装
除非您想修改包,否则您不需要此源代码。如果您只想使用该软件包,只需运行:
pip install --upgrade telnyx
从源代码安装:
python setup.py install
非 x86/x86_64 处理器
该telnyx包以轮子(预编译包)的形式分发,以便于安装。该轮仅适用于 x86/x86_64 处理器。当在不同的架构上安装包时,如 ARM,pip
安装程序将回退到从源代码安装。因此,您需要确保安装了其他依赖项。例如,如果您使用的是 Raspberry Pi,这将影响您。
特别是对于 ARM,作为源安装的替代方案,您可以考虑使用https://www.piwheels.org/用于 ARM 编译的轮子。
要求
- Python 2.7 或 3.5+(支持 PyPy)
源安装的附加要求
- 构建要素(gcc,make)
- 蟒蛇开发
- libffi开发
这些包按照它们在 Ubuntu 上的名称列出。
用法
该库需要使用您的帐户的 API 密钥进行配置,该密钥在您的Telnyx 仪表板中可用。设置telnyx.api_key为其值:
import telnyx
telnyx.api_key = "KEY01234_yoursecretkey"
# Retrieve single Messaging Profile
telnyx.MessagingProfile.retrieve("123")
# List Messaging Profiles
profiles = telnyx.MessagingProfile.list()
# Retrieve next page of list results
profiles.next_page()
# Loop over all page results
for page in profiles.auto_paging_iter():
print(page)
您可以在此处阅读有关我们 API 密钥的更多信息。
按请求配置
对于需要在进程生命周期内使用多个密钥的应用程序,还可以设置每个请求的密钥和/或帐户:
import telnyx
# list messaging profiles
telnyx.MessagingProfile.list(
api_key="super-secret...",
)
# retrieve single messaging profile
telnyx.MessagingProfile.retrieve(
"123",
api_key="other-secret...",
)
配置 HTTP 客户端
该库可以配置为使用urlfetch, requests, pycurl, 或
urllib2with telnyx.default_http_client:
client = telnyx.http_client.UrlFetchClient()
client = telnyx.http_client.RequestsClient()
client = telnyx.http_client.PycurlClient()
client = telnyx.http_client.Urllib2Client()
telnyx.default_http_client = client
在没有配置客户端的情况下,默认情况下,库将尝试按上述顺序加载库(即urlfetch,首选urllib2作为最后的手段)。我们通常建议人们使用requests.
配置代理
代理可以配置为telnyx.proxy:
telnyx.proxy = "https://user:pass@example.com:1234"
配置自动重试
可以配置因间歇性网络问题而失败的请求的自动重试次数:
telnyx.max_network_retries = 2
保留字关键字参数
Telnyx API 包含from一个可以在消息上设置的属性。
from也是 Python 中的保留字。如果您想在参数是保留字的情况下使用关键字参数,您可以添加后缀,_例如
telnyx.Message.create(
to="+18665550001",
from_="+18445550001",
text="Foo"
)
该参数将自动重写为from关键字参数字典。
专业提示:您也可以像这样解压字典:
message = { "from": "+18445550001", "to": "+18665550001", "text": "Foo", } telnyx.Message.create(**message)
日志记录
该库可以配置为发出日志记录,这将使您更好地了解它在做什么。日志级别通常最info适合生产使用,但debug也可用于更详细的情况。
有几个选项可以启用它:
-
将环境变量设置
TELNYX_LOG为值debug或info$ export TELNYX_LOG=debug -
设置
telnyx.log:import telnyx telnyx.log = 'debug'
-
通过 Python 的日志记录模块启用它:
import logging logging.basicConfig() logging.getLogger('telnyx').setLevel(logging.DEBUG)
编写插件
如果您正在编写使用该库的插件,如果您确定使用以下内容,我们将不胜感激telnyx.set_app_info():
telnyx.set_app_info("MyAwesomePlugin", version="1.2.34", url="https://myawesomeplugin.info")
当库调用 Telnyx API 时,会传递此信息。
发展
测试套件依赖于telnyx-mock,因此请确保从后台终端获取并运行它(telnyx-mock 的 README还包含通过 Homebrew 和其他方法安装的说明):
go get -u github.com/team-telnyx/telnyx-mock
telnyx-mock
安装pipenv,然后安装项目的所有依赖项:
pipenv install --dev
在所有受支持的 Python 版本上运行所有测试:
make test
运行特定 Python 版本的所有测试(-e根据您的 Python 目标进行修改):
pipenv run tox -e py27
在一个文件中运行所有测试:
pipenv run tox -e py27 -- tests/api_resources/abstract/test_updateable_api_resource.py
运行单个测试套件:
pipenv run tox -e py27 -- tests/api_resources/abstract/test_updateable_api_resource.py::TestUpdateableAPIResource
运行单个测试:
pipenv run tox -e py27 -- tests/api_resources/abstract/test_updateable_api_resource.py::TestUpdateableAPIResource::test_save
使用以下命令运行 linter:
make lint
该库使用Black进行代码格式化。在提交 PR 之前,代码必须用 Black 格式化,否则 CI 会失败。运行格式化程序:
make fmt
添加新端点
-
为端点与之交互的对象定义一个类
telnyx/api_resources/。单数化的路径名通常应与返回的对象的记录类型相匹配,例如/v2/available_phone_numbers返回带有 record_type 的对象列表available_phone_number。从定义端点上可用行为的类继承,一个或多个CreateableAPIResource,DeletableAPIResource,ListableAPIResource,UpdateableAPIResource。 -
将您的课程导入
telnyx/api_resources/__init__.py. -
将您的新课程添加
OBJECT_CLASSES到telnyx/util.py. -
在
tests/api_resources/.
释放
- 更新版本在
setup.py(在setup()通话中,versionkwarg)telnyx/__init__.py(__version__字符串)
- 创建新分支、添加更改、提交和推送
- 确保提交通过Travis中的测试
- 用 标记提交
git tag -a v{VERSION} -m "Release v{VERSION}",然后推送标记git push --follow-tags - 确保签出的副本完全干净(最好创建一个新环境......)
make dists- 如果您之前没有这样做过,请从 LastPass 下载上传 API 密钥(搜索“pypi”)并将“PYPIRC FILE”标签之间的内容放入
~/.pypirc-telnyx. make testupload,检查它在 PyPI 上是否正常,并且可以通过pip.make liveupload,重复检查实时版本。- 达达。
致谢
Telnyx Python 的贡献者和维护者谨向 Stripe Python 的作者致以深深的谢意,Stripe Python是本项目的基础。感谢您开发如此优雅、可用且可扩展的代码并与社区分享。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。