跳转到主要内容

Threema网关服务的API,用于发送和接收包括文本、图片、文件和投递报告的消息。

项目描述

threema-gateway 是一个用于Threema网关服务的Python 3模块。此API可用于向任何Threema用户发送和接收文本消息。

注意

在Python 3不是默认Python运行时的机器上,您应该使用 pip3 而不是 pip

先决条件

$ sudo apt-get install python3 python3-pip

我们建议使用 venv 来创建一个隔离的Python环境

$ pyvenv venv

您可以通过运行此命令进入创建的虚拟环境 venv

$ source venv/bin/activate

当虚拟环境处于活动状态时,使用 pip 安装的所有包都将安装到该环境中。

要停用虚拟环境,只需运行

$ deactivate

如果您想要更容易地处理虚拟环境,也可以看看 virtualenvwrapper

安装

如果您正在使用虚拟环境,请先激活它。

通过运行以下命令安装模块:

$ pip install threema.gateway

将自动安装依赖项 libnacl。但是,您可能需要安装 libsodium 以使 libnacl 正常工作。

命令行使用

脚本 threema-gateway 为 Threema 网关提供了命令行界面。运行以下命令以查看使用信息

$ threema-gateway --help

网关 API 端点

使用的默认网关 API 端点 URL 为 https://msgapi.threema.ch/

如果您是 Threema OnPrem 客户或出于其他原因需要使用不同的网关 API 端点,可以按以下方式覆盖 URL

$ export GATEWAY_API_URL=https://onprem.myinstance.tld/msgapi

之后对 threema-gateway 的任何调用都将使用提供的网关 API 端点 URL。

示例

您可以在 examples/ 目录中找到一些示例脚本。

请注意,大多数脚本在成功运行之前至少需要调整以添加您的网关 ID 凭证。

功能级别

级别

文本

功能

图片

文件

信誉

1

X

2

X

X

X

X

3

X

X

X

X

X

可以通过执行以下命令查看已实现的功能级别

$ threema-gateway version

贡献

如果您想为此项目做出贡献,您应该在可编辑的环境中安装项目的可选 dev 要求

$ git clone https://github.com/threema-ch/threema-msgapi-sdk-python.git
$ cd threema-msgapi-sdk-python
$ pip install -e .[dev]

在创建拉取请求之前,建议运行以下命令以检查代码风格违规(flake8),优化导入(isort)并运行项目的测试

$ flake8 .
$ isort .
$ py.test

还应该运行类型检查器,它可能会捕获一些额外的错误

$ mypy setup.py tests examples threema

变更日志

8.0.0 (2024-08-21)

  • 添加对 Python 3.10/3.11/3.12 的支持

  • 取消对低于 3.8 的 Python 版本的支持

  • 更新依赖项

  • caption 添加到文件消息和 CLI

  • send-simplesend-e2e CLI 添加一个可选参数,允许通过参数传递文本而不是从 stdin 读取。

  • 使随机填充规范符合要求

  • 添加一个可选环境变量 GATEWAY_API_URL 来覆盖网关 API 端点 URL

7.0.1 (2023-02-21)

  • 修复未知接收功能的解析

  • 添加新的 ReceptionCapability 项目

  • 移除 ReceptionCapabilitiesError(破坏性更改)

6.0.0 (2022-06-13)

一般

  • 添加对 Python 3.10 的支持

  • 取消对低于 3.7 的 Python 版本的支持

  • 主要依赖项升级以增加与其他包的兼容性

  • 更新所有测试以与新依赖项一起工作

  • 更改 CLI 语法:所有命令现在都是 dash-case 而不是 snake_case,例如,send_e2e 命令现在称为 send-e2e

5.0.0 (2021-05-17)

  • Connection 添加自定义会话和会话参数 (#55, #56)

  • 移除 fingerprintverify_fingerprint 参数,请参阅 #55 以获取详细说明和如何实现固定

4.0.0 (2021-01-23)

一般

  • 取消对低于 3.6.1 的 Python 版本的支持

  • 在弃用后移除 ReceiptType.user_ack。请使用 ReceiptType.user_acknowledge 代替。

  • 简化 util.aio_run。它不再允许传递特定的事件循环或在完成时关闭事件循环。

  • util.aio_run_proxy_decorator 重命名为 aio_run_proxy。现在它总是在运行的事件循环中创建类实例。

客户端

  • 在异步模式下,现在必须在 async 函数中创建 Connection 实例。

  • 如果您之前在异步模式下使用过 with 上下文管理器块,现在必须在 async with 异步上下文管理器中进行此操作。在阻塞模式下不需要更改。

  • Connection.close 现在是一个异步函数。

服务器

  • 回调服务器已经重构,并已移除 AbstractCallback 类,以实现更大的灵活性和对底层 aiohttp 服务器的控制。请参阅 examples/callback.py 了解如何使用它。

  • 由于重复,已移除回调服务器 CLI。示例提供了相同的功能。

3.1.0 (2020-04-21)

  • 添加视频消息

  • 修复图像字节长度计算略微偏差的问题

3.0.6 (2017-09-22)

  • 迁移到 aiohttp2

3.0.5 (2017-07-25)

  • 修复处理新的 libnacl 异常。

3.0.4 (2017-05-23)

  • 修复 CLI

3.0.2 (2017-05-12)

  • 在 PyPI 上首次发布

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面