Azure Communication SMS Package client library for Python¶
This package contains a Python SDK for Azure Communication Services for SMS. Read more about Azure Communication Services here
Source code | Package (Pypi) | API reference documentation | Product documentation
Getting started¶
Prerequisites¶
Python 2.7, or 3.5 or later is required to use this package.
A deployed Communication Services resource. You can use the Azure Portal or the Azure PowerShell to set it up.
You must have a phone number configured that is associated with an Azure subscription
Examples¶
The following section provides several code snippets covering some of the most common Azure Communication Services tasks, including:
Client Initialization¶
To initialize the SMS Client, the connection string can be used to instantiate. Alternatively, you can also use Active Directory authentication using DefaultAzureCredential.
from azure.communication.sms import SmsClient
from azure.identity import DefaultAzureCredential
connection_str = os.getenv('AZURE_COMMUNICATION_SERVICE_CONNECTION_STRING')
sms_client = SmsClient.from_connection_string(connection_string)
# To use Azure Active Directory Authentication (DefaultAzureCredential) make sure to have
# AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET as env variables.
endpoint = os.getenv('AZURE_COMMUNICATION_SERVICE_ENDPOINT')
sms_client = SmsClient(endpoint, DefaultAzureCredential())
Sending SMS Messages¶
Once the client is initialized, the .send()
method can be invoked:
from azure.communication.sms import SendSmsOptions
sms_responses = sms_client.send(
from_phone_number=PhoneNumberIdentifier("<leased-phone-number>"),
to_phone_numbers=["<to-phone-number-1>", "<to-phone-number-2>", "<to-phone-number-3>"],
message="Hello World via SMS",
enable_delivery_report=True, # optional property
tag="custom-tag") # optional property
from_phone_number
: An SMS enabled phone number associated with your communication service.to_phone_numbers
: The phone numbers you wish to send a message to.message
: The message that you want to send.enable_delivery_report
: An optional parameter that you can use to configure delivery reporting. This is useful for scenarios where you want to emit events when SMS messages are delivered.tag
: An optional parameter that you can use to configure custom tagging.
Troubleshooting¶
The Azure Communication Service Identity client will raise exceptions defined in Azure Core.
Next steps¶
Provide Feedback¶
If you encounter any bugs or have suggestions, please file an issue in the Issues section of the project
Contributing¶
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.