Telnyx "Twexit" Python Library
The Telnyx "Twexit" Python library allows users to send messages and validate webhooks with minimal changes to their existing Twilio messaging code.
Installation
This SDK can be installed either via pip
:
pip install twexit
or direct from source by downloading and unzipping the repository from here, then from within the twexit-python
folder, run
python setup.py install
Account Setup
-
Complete the Portal Setup to set up a messaging-enabled number.
-
Follow the additional Twexit setup steps to configure webhooks
Usage
Send a message
from twilio.rest import Client
account_sid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
auth_token = "KEY0123456789xxxxx"
message = client.messages.create(
to="+13125550123",
from_="+16165550123",
body="Free yourself with Twexit!"
)
print(message.sid)
Webhook Validation
Twexit uses a fast asymmetric signing algorithm, Ed25519, to avoid issues discovered with SHA-1. To switch from the HMAC-SHA1 signing method, follow these steps:
-
Obtain your account's public key at https://portal.telnyx.com/#/app/account/public-key
-
Update your application to use the TwexitRequestValidator
instead of RequestValidator
-
Extract the X-Twexit-Signature
from the request and provide that when calling the validator.
from twilio.request_validator import TwexitRequestValidator
public_key = "abcdef123456xxxxx"
validator = TwexitRequestValidator(public_key)
url = 'https://mycompany.com/myapp.php?foo=1&bar=2'
params = {
"MessageSid": "CA1234567890ABCDE",
"ApiVersion": "2010-04-01",
"Body": "Aloha!",
"From": "+13125550123",
"To": "+16165550123",
}
twexit_signature = '0/KCTR6DLpKmkAf8muzZqo1nDgQ='
print(validator.validate(url, params, twexit_signature))
Caveats
This SDK currently only provides the capability to send messages via REST and validate webhooks when receiving messages. Configuration of the messaging product and other products (voice, fax) are not yet supported.