Skip to main content
Help the Python Software Foundation raise $60,000 USD by December 31st!  Building the PSF Q4 Fundraiser

Infobip SMS API client library in Python

Project description

Running examples

First, setup your username and password in examples/__init__.py. Then, you can run provided examples in examples folder by running:

python example.py deserialize_dr_example # provided argument is <file_name_of_example>

Basic messaging example

First, initialize the messaging client using your username and password:

send_sms_client = send_single_textual_sms(Configuration("username", "password"))

Prepare the message:

request = SMSTextualRequest()
request.text = "This is an example message"
request.to = ["xxxxxxxx", "yyyyyyy"]

Send the message:

response = send_sms_client.execute(request)

Later you can query for the delivery status of the message:

get_delivery_reports_client = get_sent_sms_delivery_reports(Configuration("https://api.infobip.com", "username", "password"))
response = get_delivery_reports_client.execute({"limit": 5})

Messaging with delivery report push to notification URL example

Similar to standard messaging example, but when preparing your message, use SMSAdvancedTextualRequest:

send_sms_client = send_multiple_textual_sms_advanced(Configuration("https://api.infobip.com", "username", "password"))

dest = Destination()
dest.message_id = "message_111"
dest.to = "number1aaa"

message = SMSData()
message.text = "This is an example message."
message.notify_url = "https://test.com/url_for_delivery_reports"
message.destinations = [dest]

dest2 = Destination()
dest2.message_id = "message_222"
dest2.to = "number2bbb"

message2 = SMSData()
message2.text = "This is an example message #2."
message2.notify_url = "https://test.com/url_for_delivery_reports_2"
message2.destinations = [dest2]

request = SMSAdvancedTextualRequest()
request.messages = [message, message2]

response = send_sms_client.execute(request)

When the delivery notification is pushed to your server as a HTTP POST request, you can process the body of the message with the following code:

delivery_status = reports = SMSReportResponse.from_JSON(http_body)

License

This library is licensed under the Apache License, Version 2.0

Project details


Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page