|

|  How to Send SMS Messages Using Twilio API in Python

How to Send SMS Messages Using Twilio API in Python

October 31, 2024

Learn to send SMS with Twilio API in Python effortlessly. This guide covers setup, coding, and best practices to streamline your messaging process.

How to Send SMS Messages Using Twilio API in Python

 

Install Twilio Python Library

 

  • To interact with the Twilio API, you need the Twilio Python SDK. Install it via pip with the following command:

 


pip install twilio

 

Import Required Libraries

 

  • You'll need to import the `Client` class from the `twilio.rest` module to send SMS messages.

 


from twilio.rest import Client

 

Initialize Twilio Client

 

  • Create an instance of the `Client` class using your Twilio Account SID and Authentication Token. These credentials authenticate your API requests.

 


account_sid = 'your_account_sid'
auth_token = 'your_auth_token'
client = Client(account_sid, auth_token)

 

Send an SMS Message

 

  • Use the `messages.create` method to send an SMS. You need to specify the message body, the sending Twilio phone number, and the recipient's phone number.

 


message = client.messages.create(
    body='Hello from Twilio!',
    from_='+1234567890',
    to='+0987654321'
)

 

Handle the Response

 

  • The `messages.create` method returns a `MessageInstance` that contains information about the request. You can access the response details such as the SID, status, and more.

 


print(f'Message SID: {message.sid}')
print(f'Message Status: {message.status}')

 

Error Handling

 

  • Consider implementing error handling to manage exceptions that may be raised due to invalid credentials, connection issues, etc.

 


try:
    message = client.messages.create(
        body='Error handling in place!',
        from_='+1234567890',
        to='+0987654321'
    )
    print(f'Success: {message.sid}')
except Exception as e:
    print(f'Error: {str(e)}')

 

Use Environment Variables for Security

 

  • Store your account SID and authentication token in environment variables for enhanced security.
  • Access them in your script as shown:

 


import os
account_sid = os.environ.get('TWILIO_ACCOUNT_SID')
auth_token = os.environ.get('TWILIO_AUTH_TOKEN')
client = Client(account_sid, auth_token)

 

Advanced: Send Media Messages

 

  • Beyond text, Twilio allows sending MMS. Attach media by providing a URL to the media file.

 


media_message = client.messages.create(
    body='Check out this image!',
    from_='+1234567890',
    to='+0987654321',
    media_url=['https://example.com/image.jpg']
)

 

Conclusion and Best Practices

 

  • Ensure to adhere to local regulations regarding sending SMS messages, particularly regarding user consent.
  • Monitor your Twilio usage in the Twilio Console to manage costs and maintain oversight over your message delivery rate.