Skip to main content

An API for the Threema gateway service to send and receive messages including text, images, files and delivery reports.

Project description

Travis codecov

threema-gateway is a Python 3 module for the Threema gateway service. This API can be used to send and receive text messages to and from any Threema user.

Note

On machines where Python 3 is not the default Python runtime, you should use pip3 instead of pip.

Prerequisites

$ sudo apt-get install python3 python3-pip

We recommend using venv to create an isolated Python environment:

$ pyvenv venv

You can switch into the created virtual environment venv by running this command:

$ source venv/bin/activate

While the virtual environment is active, all packages installed using pip will be installed into this environment.

To deactivate the virtual environment, just run:

$ deactivate

If you want easier handling of your virtualenvs, you might also want to take a look at virtualenvwrapper.

Installation

If you are using a virtual environment, activate it first.

Install the module by running:

$ pip install threema.gateway

The dependency libnacl will be installed automatically. However, you may need to install libsodium for libnacl to work.

Command Line Usage

The script threema-gateway provides a command line interface for the Threema gateway. Run the following command to see usage information:

$ threema-gateway --help

Examples

You can find a few example scripts in the examples/ directory.

Note that most of them need to be adjusted to at least add your gateway ID credentials before they run successfully.

Feature Levels

Level

Text

Capabilities

Image

File

Credits

1

X

2

X

X

X

X

3

X

X

X

X

X

You can see the implemented feature level by invoking the following command:

$ threema-gateway version

Callback Server

The callback server can be used to receive messages. The demo script threema-callback-server prints out received message on the command line. Run the following command to see usage information.

$ threema-callback-server --help

The script resides here.

Troubleshooting

Invalid environment marker: python_version<=”3.4”

If you’re getting the following error when installing the library:

Unpacking /tmp/threema-msgapi-sdk-python
  Running setup.py (path:/tmp/pip-5b1d7h0w-build/setup.py) egg_info for package from file:///tmp/threema-msgapi-sdk-python
    error in threema.gateway setup command: Invalid environment marker: python_version<="3.4"
    Complete output from command python setup.py egg_info:
    error in threema.gateway setup command: Invalid environment marker: python_version<="3.4"

… then you have an old version of setuptools installed. If you use a venv (as described in the “Prerequisites” section), enter it (using source venv/bin/activate) and then upgrade setuptools:

$ pip install -U setuptools

Now installing the threema.gateway module should work.

Contributing

If you want to contribute to this project, you should install the optional dev requirements of the project in an editable environment:

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

Before creating a pull request, it is recommended to run the following commands to check for code style violations (flake8), optimise imports (isort) and run the project’s tests:

$ flake8 .
$ isort -rc .
$ py.test

You should also run the type checker that might catch some additional bugs:

$ mypy .

Reporting Security Issues

Please report security issues directly to one or both of the following contacts:

Changelog

3.1.0 (2020-04-21)

  • Add video message

  • Fix slightly off calculation of image byte length

3.0.6 (2017-09-22)

  • Migrate to aiohttp2

3.0.5 (2017-07-25)

  • Fix to handle new libnacl exceptions.

3.0.4 (2017-05-23)

  • Fix CLI

3.0.2 (2017-05-12)

  • Initial publication on PyPI

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

threema.gateway-3.1.0.tar.gz (439.2 kB view details)

Uploaded Source

Built Distribution

threema.gateway-3.1.0-py34.py35.py36.py37.py38-none-any.whl (34.1 kB view details)

Uploaded Python 3.4 Python 3.5 Python 3.6 Python 3.7 Python 3.8

File details

Details for the file threema.gateway-3.1.0.tar.gz.

File metadata

  • Download URL: threema.gateway-3.1.0.tar.gz
  • Upload date:
  • Size: 439.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for threema.gateway-3.1.0.tar.gz
Algorithm Hash digest
SHA256 675c084b9e3ea9195e5dd312e90def2a7a6c3ec68aa947883cfe88c60d0b66d8
MD5 d5e1c0b0d242ae9999f169640c210e4e
BLAKE2b-256 5ab2270bbc74c5d81a79b721c0fa083b723de553cb1df900c64e7add7b0db585

See more details on using hashes here.

File details

Details for the file threema.gateway-3.1.0-py34.py35.py36.py37.py38-none-any.whl.

File metadata

  • Download URL: threema.gateway-3.1.0-py34.py35.py36.py37.py38-none-any.whl
  • Upload date:
  • Size: 34.1 kB
  • Tags: Python 3.4, Python 3.5, Python 3.6, Python 3.7, Python 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for threema.gateway-3.1.0-py34.py35.py36.py37.py38-none-any.whl
Algorithm Hash digest
SHA256 2cb1150735e182c0aae351eb487914f31ac104272410bb57ad40ca349d7d14c2
MD5 11f52eef2617fcaa301853162b7e0352
BLAKE2b-256 1cd5395b8d0fffe3e36f3c88073c73275a49979797872702d896614a70a20d77

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page