clearskies bindings for working with Twilio
Project description
clearskies-twilio
clearskies bindings for working with Twilio. At the moment it's just an action to send an SMS.
Installation
To install:
pip install clear-skies-twilio
Usage
Authentication
Before you can use this you need to setup authentication to Twilio. This only works with API keys from Twilio - not your auth token(s). Also, this module assumes that your authentication details are stored in your secret manager, so you provide paths to secrets in your secret manager.
IMPORTANT: This module is designed to fetch your Twilio credentials only when needed and will automatically re-fetch them from the secrets manager in the event of an authentication failure. As a result, you can rotate your Twilio credentials at anytime: just drop the new credentials in your secret manager and your running processes will automatically find it and use it without needing to restart/rebuild/relaunch the application. There are three "pieces" to authentication with Twilio:
- API Key
- API Secret
- Account SID
You have to tell the twilio module where these live in the secret manager. We do that in the below example and also point clearskies to AWS Secrets Manager:
import clearskies
import clearskies_twilio
import clearskies_aws
application = clearskies.Application(
SomeHandler,
{
"your": "application config",
},
bindings={
"twilio": clearskies_twilio.di.twilio(
api_key="/path/to/twilio/api_key",
api_secret="/path/to/twilio/api_secret",
account_sid="/path/to/twilio/account_sid",
),
"secrets": clearskies_aws.secrets.SecretsManager,
},
)
Actions
Currently the only option available is an Action for sending SMS messages. It accepts a message that should be a string or a callable that returns the SMS message and which can accept model
(the model that triggered the action) as well as any other configured dependencies. You must provide from_number
and to_number
which can be either a phone number, the name of one of the columns in the model, or callables which return the phone number. Simple example:
import clearskies
from clearskies.column_types import uuid, string, created
from collections import OrderedDict
from clearskies_twilio.actions import sms
class User(clearskies.Model):
def __init__(self, cursor_backend, columns):
super().__init__(cursor_backend, columns)
def columns_configuration(self):
return OrderedDict(
[
uuid("id"),
string("phone"),
string("name"),
created(
"created_at",
on_change=[
sms(
from_number="+15551234567",
to_number="phone",
message=lambda model: f"Welcome {model.name}!"
),
],
),
]
)
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
Built Distribution
Hashes for clear_skies_twilio-0.9.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14724cc1044440c0a03ad28deb39c5097e3ef5520b20e82c2473e5da56942452 |
|
MD5 | a34871408d3a33498adde52196af7989 |
|
BLAKE2b-256 | 7b8dca0807d3bf6feafaeaabf8941fe17f2d65c478fde8caecae6cec1608284d |