你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Python 的 Azure 通信短信包客户端库 - 版本 1.0.1
此包包含一个 Python SDK for Azure 通信服务 for SMS。 在此处阅读有关Azure 通信服务的详细信息
源代码 | 包 (Pypi) | API 参考文档 | 产品文档
入门
先决条件
- 使用此包需要 Python 2.7、3.6 或更高版本。
- 已部署的通信服务资源。 可以使用 Azure 门户或Azure PowerShell进行设置。
- 必须配置与 Azure 订阅关联的电话号码
安装包
使用 pip 安装适用于 Python 的 Azure 通信 SMS 客户端库:
pip install azure-communication-sms
关键概念
Azure 通信短信包用于执行以下操作:
- 发送 1:1 短信
- 发送 1:N 短信
示例
以下部分提供了几个代码片段,涵盖了一些最常见的Azure 通信服务任务,包括:
客户端初始化
若要初始化 SMS 客户端,可以使用连接字符串进行实例化。 或者,还可以使用 DefaultAzureCredential 的 Active Directory 身份验证。
from azure.communication.sms import SmsClient
from azure.identity import DefaultAzureCredential
connection_str = "endpoint=ENDPOINT;accessKey=KEY"
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 = "https://<RESOURCE_NAME>.communication.azure.com"
sms_client = SmsClient(endpoint, DefaultAzureCredential())
发送 1:1 短信
初始化客户端后, send
可以调用 方法:
from azure.communication.sms import SendSmsOptions
sms_responses = sms_client.send(
from_="<from-phone-number>",
to="<to-phone-number-1>",
message="Hello World via SMS",
enable_delivery_report=True, # optional property
tag="custom-tag") # optional property
-
from_
:与通信服务关联的启用短信的电话号码。 -
to
:要向其发送邮件的电话号码或电话号码列表。 -
message
:要发送的消息。 -
enable_delivery_report
:可用于配置传递报告的可选参数。 这对于要在传送短信后发出事件的情况很有用。 -
tag
:可用于配置自定义标记的可选参数。
发送 1:N 短信
初始化客户端后, send
可以调用 方法:
from azure.communication.sms import SendSmsOptions
sms_responses = sms_client.send(
from_="<from-phone-number>",
to=["<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_
:与通信服务关联的启用短信的电话号码。 -
to
:要向其发送邮件的电话号码或电话号码列表。 -
message
:要发送的消息。 -
enable_delivery_report
:可用于配置传递报告的可选参数。 这对于要在传送短信后发出事件的情况很有用。 -
tag
:可用于配置自定义标记的可选参数。
疑难解答
如果对服务器的请求失败,SMS 操作将引发异常。 SMS 客户端将引发 Azure Core 中定义的异常。 如果错误是由单个消息引起的,则不会引发异常,仅当总体请求失败时。 请使用成功标志来验证每个结果,以验证消息是否已发送。
try:
sms_responses = sms_client.send(
from_="<leased-phone-number>",
to=["<to-phone-number-1>", "<to-phone-number-2>", "<to-phone-number-3>"],
message="Hello World via SMS")
for sms_response in sms_responses:
if (sms_response.successful):
print("Message with message id {} was successful sent to {}"
.format(sms_response.message_id, sms_response.to))
else:
print("Message failed to send to {} with the status code {} and error: {}"
.format(sms_response.to, sms_response.http_status_code, sms_response.error_message))
except Exception as ex:
print('Exception:')
print(ex)
后续步骤
- 阅读有关 Azure 通信服务 中的短信的详细信息
- 有关如何为短信配置传递报告的基本指南,请参阅 处理短信事件快速入门。
更多示例代码
请查看 示例 目录,获取有关如何使用此库发送短信的详细示例。
提供反馈
如果遇到任何 bug 或有建议,请在项目的“ 问题 ”部分中提出问题
贡献
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 https://cla.microsoft.com 。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。