django-nexmo is a tiny Django app to send sms using the Nexmo provider.
Installation using pip is simple:
$ pip install django-nexmo
Add the nexmo app to your installed applications:
INSTALLED_APPS = (
…
'nexmo',
…
)
You need to add a few lines in your settings.py file for django-nexmo to work:
NEXMO_USERNAME = 'API_KEY'
NEXMO_PASSWORD = 'SECRET'
NEXMO_FROM = 'Name or phone'
Did I mention that you need a Nexmo account? Seems quite obvious to me.
You can get your API_KEY and SECRET from your Nexmo Dashboard
The nexmo apps gives you access to a shortcut to send text messages easily.
from nexmo import send_message
send_message('+33612345678', 'My sms message body')
Is that all? Yes… for now.
django-nexmo embeds libpynexmo by Marco Londero.
Therefore, you can import and use the NexmoMessage class to manually forge
requests to the Nexmo API.
from nexmo.libpynexmo.nexmomessage import NexmoMessage
params = {
'api_key': settings.NEXMO_USERNAME,
'api_secret': settings.NEXMO_PASSWORD,
'type': 'unicode',
'from': settings.NEXMO_FROM,
'to': to,
'text': message.encode('utf-8'),
}
sms = NexmoMessage(params)
response = sms.send_request()
Nexmo can call one of your urls to send further details about a text message processing.
django-nexmo provides a very basic callback handler that does nothing but logging
Nexmo calls.
In your main urls.py file:
urlpatterns = patterns('',
…
url(r'^nexmo/', include('nexmo.urls')),
…
)
This will declare a callback view accessible through the http://your-site.url/nexmo/callback/ url.
Copy this url and paste it in the "Callback URL" section of your "API settings" section of your Nexmo.com account.