你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 .NET 的 Azure 通信短信客户端库 - 版本 1.0.1
此包包含用于短信和电话Azure 通信服务的 C# SDK。
入门
安装包
使用 NuGet 安装适用于 .NET 的 Azure 通信 SMS 客户端库:
dotnet add package Azure.Communication.Sms --version 1.0.0
必备条件
需要一个 Azure 订阅 和一个 通信服务资源 才能使用此包。
若要创建新的通信服务,可以使用 Azure 门户、Azure PowerShell或 .NET 管理客户端库。
关键概念
SmsClient
提供在电话号码之间发送消息的功能。
使用语句
using System;
using Azure.Communication.Sms;
验证客户端
可以在 Azure 门户中使用从 Azure 通信资源获取的连接字符串对 SMS 客户端进行身份验证。
var connectionString = "<connection_string>"; // Find your Communication Services resource in the Azure portal
SmsClient client = new SmsClient(connectionString);
或者,也可以使用有效的令牌凭据对 SMS 客户端进行身份验证。 在此选项中,AZURE_CLIENT_SECRET
、AZURE_CLIENT_ID
和 AZURE_TENANT_ID
环境变量需要设置为可执行身份验证。
string endpoint = "<endpoint_url>";
TokenCredential tokenCredential = new DefaultAzureCredential();
SmsClient client = new SmsClient(new Uri(endpoint), tokenCredential);
示例
发送 1:1 短信
若要发送短信,请Send
从 SmsClient
调用 或 SendAsync
函数。
SmsSendResult sendResult = await smsClient.SendAsync(
from: "<from-phone-number>", // Your E.164 formatted from phone number used to send SMS
to: "<to-phone-number>", // E.164 formatted recipient phone number
message: "Hi");
Console.WriteLine($"Sms id: {sendResult.MessageId}");
发送 1:N 短信
若要向收件人列表发送短信,请使用收件人的电话号码列表从 SmsClient
调用 Send
或 SendAsync
函数。
还可以在 options 对象中添加传递,以指定是否应启用传递报告并设置自定义标记。
var response = await smsClient.SendAsync(
from: "<from-phone-number>", // Your E.164 formatted from phone number used to send SMS
to: new string[] { "<to-phone-number-1>", "<to-phone-number-2>" }, // E.164 formatted recipient phone numbers
message: "Weekly Promotion!",
options: new SmsSendOptions(enableDeliveryReport: true) // OPTIONAL
{
Tag = "marketing", // custom tags
});
foreach (SmsSendResult result in response.Value)
{
Console.WriteLine($"Sms id: {result.MessageId}");
Console.WriteLine($"Send Result Successful: {result.Successful}");
}
疑难解答
如果对服务器的请求失败,SMS 操作将引发异常。
如果错误是由单个消息引起的,则不会引发异常,仅当总体请求失败时。
请使用 Successful
标志验证每个结果,以验证消息是否已发送。
try
{
var response = await smsClient.SendAsync(
from: "<from-phone-number>" // Your E.164 formatted phone number used to send SMS
to: new string [] {"<to-phone-number-1>", "<to-phone-number-2>"}, // E.164 formatted recipient phone number
message: "Weekly Promotion!",
options: new SmsSendOptions(enableDeliveryReport: true) // OPTIONAL
{
Tag = "marketing", // custom tags
});
foreach (SmsSendResult result in response.Value)
{
if (result.Successful)
{
Console.WriteLine($"Successfully sent this message: {result.MessageId} to {result.To}.");
}
else
{
Console.WriteLine($"Something went wrong when trying to send this message {result.MessageId} to {result.To}.");
Console.WriteLine($"Status code {result.HttpStatusCode} and error message {result.ErrorMessage}.");
}
}
}
catch (RequestFailedException ex)
{
Console.WriteLine(ex.Message);
}
后续步骤
- 阅读有关 Azure 通信服务 中的短信的详细信息
- 有关如何为短信配置传递报告的基本指南,请参阅 处理短信事件快速入门。
贡献
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 cla.microsoft.com。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。