Skip to main content

Telnyx API 的 Python 绑定

项目描述

Telnyx Python 库

图片 图片 图片 构建状态 覆盖状态 加入松弛

Telnyx Python 库提供从以 Python 语言编写的应用程序对 Telnyx API 的便捷访问。它包括一组用于 API 资源的预定义类,这些类从 API 响应中动态初始化,使其与各种 Telnyx API 版本兼容。

文档

请参阅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也可用于更详细的情况。

有几个选项可以启用它:

  1. 将环境变量设置TELNYX_LOG为值debuginfo

    $ export TELNYX_LOG=debug
    
  2. 设置telnyx.log

    import telnyx
    telnyx.log = 'debug'
    
  3. 通过 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

添加新端点

  1. 为端点与之交互的对象定义一个类 telnyx/api_resources/。单数化的路径名通常应与返回的对象的记录类型相匹配,例如/v2/available_phone_numbers 返回带有 record_type 的对象列表available_phone_number。从定义端点上可用行为的类继承,一个或多个CreateableAPIResource, DeletableAPIResource, ListableAPIResource, UpdateableAPIResource

  2. 将您的课程导入telnyx/api_resources/__init__.py.

  3. 将您的新课程添加OBJECT_CLASSEStelnyx/util.py.

  4. tests/api_resources/.

释放

  1. 更新版本在
    • setup.py (在setup()通话中,versionkwarg)
    • telnyx/__init__.py__version__字符串)
  2. 创建新分支、添加更改、提交和推送
  3. 确保提交通过Travis中的测试
  4. 用 标记提交git tag -a v{VERSION} -m "Release v{VERSION}",然后推送标记git push --follow-tags
  5. 确保签出的副本完全干净(最好创建一个新环境......)
  6. make dists
  7. 如果您之前没有这样做过,请从 LastPass 下载上传 API 密钥(搜索“pypi”)并将“PYPIRC FILE”标签之间的内容放入~/.pypirc-telnyx.
  8. make testupload,检查它在 PyPI 上是否正常,并且可以通过pip.
  9. make liveupload,重复检查实时版本。
  10. 达达。

致谢

Telnyx Python 的贡献者和维护者谨向 Stripe Python 的作者致以深深的谢意,Stripe Python是本项目的基础。感谢您开发如此优雅、可用且可扩展的代码并与社区分享。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

telnyx-1.5.0.tar.gz (71.9 kB 查看哈希

已上传 source

内置分布

telnyx-1.5.0-py2.py3-none-any.whl (56.5 kB 查看哈希

已上传 py2 py3