你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:发送短信
重要
短信功能取决于所使用的电话号码和所在的国家/地区,具体取决于 Azure 帐单邮寄地址。 有关详细信息,请参阅订阅条件。
注意
请完成此简短调查,与我们分享有关 Azure 通信服务的想法和反馈。
通过使用 Azure CLI 中的通信模块发送短信,开始使用 Azure 通信服务。
完成本快速入门会从你的 Azure 帐户中扣取最多几美分的费用。
先决条件
先决条件检查
- 在终端或命令窗口中,运行
az --version
检查是否安装了 Azure CLI。
设置
安装通信模块
在终端或命令窗口中运行以下命令以安装通信模块。
az extension add --name communication
登录 Azure CLI
需要登录到 Azure CLI。 可以从终端运行 az login
命令并提供凭据进行登录。
确保使用正确的订阅
如果帐户中有多个订阅,请确保使用本教程的正确订阅。
在终端或命令窗口中,运行以下命令来检查当前订阅。
az account show
如果需要更改订阅,可以通过运行以下命令来进行更改。
az account set --subscription "<yourSubcriptionId>"
需要将 <yourSubscriptionId>
替换为实际订阅 ID,可在 Azure 门户的“订阅”部分找到该 ID。
(可选)使用 Azure CLI sms 操作而无需传入连接字符串
可以配置 AZURE_COMMUNICATION_CONNECTION_STRING
环境变量来使用 Azure CLI sms 操作,而无需使用 --connection_string
来传入连接字符串。 若要配置环境变量,请打开控制台窗口,然后从以下选项卡中选择操作系统。 将 <yourConnectionString>
替换为实际的连接字符串。
打开控制台窗口并输入以下命令:
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
添加环境变量后,可能需要重启任何正在运行的、需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
Operations
发送 1:1 短信
要将短信发送给单个收件人,请使用单个收件人电话号码从 sms 模块调用 send
方法。
az communication sms send --sender "<fromPhoneNumber>" --recipient "<toPhoneNumber>" --message "Hello world via SMS for Azure CLI!" --connection-string "<yourConnectionString>"
在代码中进行下述替换:
- 将
<fromPhoneNumber>
替换为与通信服务资源关联的已启用短信的电话号码。 - 将
<toPhoneNumber>
替换为要向其发送消息的电话号码。 - 将
<yourConnectionString>
替换为你的连接字符串。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <fromPhoneNumber>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
发送 1:N 短信
要将短信发送给一组收件人,请使用多个收件人电话号码从 sms 模块调用 send
方法。
az communication sms send --sender "<fromPhoneNumber>" --recipient "<toPhoneNumber1>" "<toPhoneNumber2>" "<toPhoneNumber3>" --message "Hello world via SMS for Azure CLI!" --connection-string "<yourConnectionString>"
在代码中进行下述替换:
- 将
<fromPhoneNumber>
替换为与通信服务资源关联的已启用短信的电话号码。 - 将
<toPhoneNumberN>
替换为要向其发送消息的第 N 个电话号码。 - 将
<yourConnectionString>
替换为你的连接字符串。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <fromPhoneNumber>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
通过使用通信服务 C# 短信 SDK 发送短信,开始使用 Azure 通信服务。
完成本快速入门会从你的 Azure 帐户中扣取最多几美分的费用。
注意
在 GitHub 上查找此快速入门的最终代码。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 适用于你的操作系统的最新版 .NET Core SDK。
- 活动的通信服务资源和连接字符串。 创建通信服务资源。
- 可接收短信的电话号码。 获取电话号码。
先决条件检查
- 在终端或命令窗口中,运行
dotnet
命令查看是否安装 .NET SDK。 - 若要查看与通信服务资源关联的电话号码,请登录到 Azure 门户,并找到你的通信服务资源。 在左侧导航窗格中选择“电话号码”。
设置应用程序环境
若要设置用于发送消息的环境,请执行以下部分中所述的步骤。
新建 C# 应用程序
在控制台窗口(例如 cmd、PowerShell 或 Bash)中,使用
dotnet new
命令创建名为SmsQuickstart
的新控制台应用。 此命令将创建包含单个源文件 (Program.cs) 的简单“Hello World”C# 项目。dotnet new console -o SmsQuickstart
将目录更改为新创建的应用文件夹,并使用
dotnet build
命令编译应用程序。cd SmsQuickstart dotnet build
安装包
仍在应用程序目录中操作,使用以下命令安装适用于 .NET 的 Azure 通信服务短信 SDK 包。
dotnet add package Azure.Communication.Sms --version 1.0.0
将
using
指令添加到 Program.cs 顶部以包括Azure.Communication
命名空间。using System; using System.Collections.Generic; using Azure; using Azure.Communication; using Azure.Communication.Sms;
对象模型
以下类和接口用于处理适用于 C# 的 Azure 通信服务短信 SDK 的某些主要功能。
名称 | 说明 |
---|---|
SmsClient | 所有短信功能都需要此类。 使用订阅信息对其进行实例化,然后使用它发送短信。 |
SmsSendOptions | 此类提供用于配置传送报告的选项。 如果 enable_delivery_report 设置为 True,则在传送成功时将发出一个事件。 |
SmsSendResult | 此类包含来自短信服务的结果。 |
验证客户端
在文本编辑器中打开 Program.cs,并将 Main
方法的主体替换为使用连接字符串初始化 SmsClient
的代码。 以下代码从名为 COMMUNICATION_SERVICES_CONNECTION_STRING
的环境变量中检索资源的连接字符串。 了解如何管理资源的连接字符串。
// This code retrieves your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
SmsClient smsClient = new SmsClient(connectionString);
发送 1:1 短信
若要将短信发送给单个收件人,请从 SmsClient 调用 Send
或 SendAsync
函数。 将此代码添加到 Program.cs 中 Main
方法的末尾:
SmsSendResult sendResult = smsClient.Send(
from: "<from-phone-number>",
to: "<to-phone-number>",
message: "Hello World via SMS"
);
Console.WriteLine($"Sms id: {sendResult.MessageId}");
在代码中进行下述替换:
- 将
<from-phone-number>
替换为与通信服务资源关联的已启用短信的电话号码。 - 将
<to-phone-number>
替换为要向其发送消息的电话号码。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <from-phone-number>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
发送包含选项的 1: N 短信
若要将短信发送到接收者列表,请从 SmsClient 调用 Send
或 SendAsync
函数并提供接收者电话号码列表。 还可以提供可选参数,以指定是否应启用传送报告,以及设置自定义标记。
Response<IReadOnlyList<SmsSendResult>> response = smsClient.Send(
from: "<from-phone-number>",
to: new string[] { "<to-phone-number-1>", "<to-phone-number-2>" },
message: "Weekly Promotion!",
options: new SmsSendOptions(enableDeliveryReport: true) // OPTIONAL
{
Tag = "marketing", // custom tags
});
IEnumerable<SmsSendResult> results = response.Value;
foreach (SmsSendResult result in results)
{
Console.WriteLine($"Sms id: {result.MessageId}");
Console.WriteLine($"Send Result Successful: {result.Successful}");
}
在代码中进行下述替换:
- 将
<from-phone-number>
替换为与通信服务资源关联的已启用短信的电话号码。 - 将
<to-phone-number-1>
和<to-phone-number-2>
替换为要向其发送消息的电话号码。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <from-phone-number>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
enableDeliveryReport
参数是一个可选参数,可用于配置传送报告。 如果你想要在传送短信后发出事件,则此功能很有用。 请参阅处理短信事件快速入门,了解如何为短信配置传送报告。
可以使用 Tag
参数将标记应用于传送报告。
运行代码
从应用程序目录使用 dotnet run
命令运行应用程序。
dotnet run
代码示例
可以从 GitHub 下载示例应用。
通过使用通信服务 JavaScript 短信 SDK 发送短信,开始使用 Azure 通信服务。
完成本快速入门会从你的 Azure 帐户中扣取最多几美分的费用。
注意
在 GitHub 上查找此快速入门的最终代码。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- Node.js,活动 LTS 和维护 LTS 版本(建议使用 8.11.1 和 10.14.1)。
- 活动的通信服务资源和连接字符串。 创建通信服务资源。
- 可接收短信的电话号码。 获取电话号码。
先决条件检查
- 在终端或命令窗口中,运行
node --version
以查看是否安装了 Node.js。 - 若要查看与通信服务资源关联的电话号码,请登录到 Azure 门户,并找到你的通信服务资源。 在左侧导航窗格中选择“电话号码”。
设置应用程序环境
若要设置用于发送消息的环境,请执行以下部分中所述的步骤。
创建新的 Node.js 应用程序
打开终端或命令窗口,运行以下命令以便为应用创建新目录,然后导航到该目录。
mkdir sms-quickstart && cd sms-quickstart
运行以下命令以使用默认设置创建 package.json 文件。
npm init -y
使用文本编辑器在项目根目录中创建名为“send-sms.js”的文件。
在以下部分,你要将本快速入门的所有源代码添加到刚刚创建的 send-sms.js 文件。
安装包
使用 npm install
命令安装适用于 JavaScript 的 Azure 通信服务短信 SDK。
npm install @azure/communication-sms --save
--save
选项将该库作为 package.json 文件中的依赖项列出。
对象模型
以下类和接口用于处理适用于 Node.js 的 Azure 通信服务短信 SDK 的某些主要功能。
名称 | 说明 |
---|---|
SmsClient | 所有短信功能都需要此类。 使用订阅信息对其进行实例化,然后使用它发送短信。 |
SmsSendRequest | 此接口是用于生成短信请求的模型。 你将使用它来配置接收者和发送者电话号码以及短信内容。 |
SmsSendOptions | 此接口提供用于配置传送报告的选项。 如果 enableDeliveryReport 设置为 true ,当传送成功时会发出一个事件。 |
SmsSendResult | 此类包含来自短信服务的结果。 |
验证客户端
若要对客户端进行身份验证,请从 SDK 导入 SmsClient,并使用连接字符串将其实例化。 可以从环境变量中检索资源的连接字符串。 例如,本部分中的代码从 COMMUNICATION_SERVICES_CONNECTION_STRING
环境变量中检索连接字符串。 了解如何管理资源的连接字符串。
若要导入客户端并将其实例化,请执行以下操作:
创建名为 send-sms.js 的文件。
将以下代码添加到 send-sms.js 中。
const { SmsClient } = require('@azure/communication-sms');
// This code retrieves your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
// Instantiate the SMS client.
const smsClient = new SmsClient(connectionString);
发送 1:N 短信
若要将短信发送到接收者列表,请从 SmsClient 调用 send
函数并提供接收者电话号码列表。 如果要向单个接收者发送消息,请仅在列表中包含一个号码。 将此代码添加到 send-sms.js 的末尾:
async function main() {
const sendResults = await smsClient.send({
from: "<from-phone-number>",
to: ["<to-phone-number-1>", "<to-phone-number-2>"],
message: "Hello World 👋🏻 via SMS"
});
// Individual messages can encounter errors during sending.
// Use the "successful" property to verify the status.
for (const sendResult of sendResults) {
if (sendResult.successful) {
console.log("Success: ", sendResult);
} else {
console.error("Something went wrong when trying to send this message: ", sendResult);
}
}
}
main();
在代码中进行下述替换:
- 将
<from-phone-number>
替换为与通信服务资源关联的已启用短信的电话号码。 - 将
<to-phone-number-1>
和<to-phone-number-2>
替换为要向其发送消息的电话号码。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <from-phone-number>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
发送包含选项的 1: N 短信
还可以提供一个选项对象,以指定是否应启用传送报告,以及设置自定义标记。
async function main() {
const sendResults = await smsClient.send({
from: "<from-phone-number>",
to: ["<to-phone-number-1>", "<to-phone-number-2>"],
message: "Weekly Promotion!"
}, {
// Optional parameters
enableDeliveryReport: true,
tag: "marketing"
});
// Individual messages can encounter errors during sending.
// Use the "successful" property to verify the status.
for (const sendResult of sendResults) {
if (sendResult.successful) {
console.log("Success: ", sendResult);
} else {
console.error("Something went wrong when trying to send this message: ", sendResult);
}
}
}
main();
在代码中进行下述替换:
- 将
<from-phone-number>
替换为与通信服务资源关联的已启用短信的电话号码。 - 将
<to-phone-number-1>
和<to-phone-number-2>
替换为要向其发送消息的电话号码。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <from-phone-number>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
enableDeliveryReport
参数是一个可选参数,可用于配置传送报告。 如果你想要在传送短信后发出事件,则此功能很有用。 请参阅处理短信事件快速入门,了解如何为短信配置传送报告。
tag
参数是可选的。 可以使用该参数将标记应用于传送报告。
运行代码
使用 node
命令运行添加到 send-sms.js 文件中的代码。
node ./send-sms.js
通过使用通信服务 Python 短信 SDK 发送短信,开始使用 Azure 通信服务。
完成本快速入门会从你的 Azure 帐户中扣取最多几美分的费用。
注意
在 GitHub 上查找此快速入门的最终代码。
先决条件
先决条件检查
- 在终端或命令窗口中,运行
python --version
命令来查看是否安装了 Python。 - 若要查看与通信服务资源关联的电话号码,请登录到 Azure 门户,并找到你的通信服务资源。 在左侧导航窗格中选择“电话号码”。
设置应用程序环境
若要设置用于发送消息的环境,请执行以下部分中所述的步骤。
创建新的 Python 应用程序
打开终端或命令窗口。 然后使用以下命令为应用创建新目录,并导航到该目录。
mkdir sms-quickstart && cd sms-quickstart
使用文本编辑器在项目根目录中创建名为“send-sms.py”的文件,并添加程序的结构,包括基本异常处理。
import os from azure.communication.sms import SmsClient try: # Quickstart code goes here. except Exception as ex: print('Exception:') print(ex)
在以下部分,你要将本快速入门的所有源代码添加到刚刚创建的 send-sms.py 文件。
安装包
仍在应用程序目录中操作,使用以下命令安装适用于 Python 的 Azure 通信服务短信 SDK 包。
pip install azure-communication-sms
对象模型
以下类和接口用于处理适用于 Python 的 Azure 通信服务短信 SDK 的某些主要功能。
名称 | 说明 |
---|---|
SmsClient | 所有短信功能都需要此类。 使用订阅信息对其进行实例化,然后使用它发送短信。 |
SmsSendResult | 此类包含来自短信服务的结果。 |
验证客户端
使用连接字符串实例化 SmsClient。 了解如何管理资源的连接字符串。
# Create the SmsClient object that you use to send SMS messages.
sms_client = SmsClient.from_connection_string(<connection_string>)
为简单起见,本快速入门使用了连接字符串,但在生产环境中,我们建议使用服务主体。
发送 1:1 短信
若要将短信发送给单个收件人,请使用单个收件人电话号码从 SmsClient 调用 send
方法。 还可以提供可选参数,以指定是否应启用传送报告,以及设置自定义标记。 将此代码添加到 send-sms.py 中 try
块的末尾:
# Call send() with SMS values.
sms_responses = sms_client.send(
from_="<from-phone-number>",
to="<to-phone-number>",
message="Hello World via SMS",
enable_delivery_report=True, # optional property
tag="custom-tag") # optional property
在代码中进行下述替换:
- 将
<from-phone-number>
替换为与通信服务关联的已启用短信的电话号码。 - 将
<to-phone-number>
替换为要向其发送消息的电话号码。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <from-phone-number>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
发送 1:N 短信
若要将短信发送到接收者列表,请从 SmsClient 调用 send
方法并提供接收者电话号码列表。 还可以提供可选参数,以指定是否应启用传送报告,以及设置自定义标记。 将此代码添加到 send-sms.py 中 try
块的末尾:
# Call send() with SMS values.
sms_responses = sms_client.send(
from_="<from-phone-number>",
to=["<to-phone-number-1>", "<to-phone-number-2>"],
message="Hello World via SMS",
enable_delivery_report=True, # optional property
tag="custom-tag") # optional property
在代码中进行下述替换:
- 将
<from-phone-number>
替换为与通信服务关联的已启用短信的电话号码。 - 将
<to-phone-number-1>
和<to-phone-number-2>
替换为要向其发送消息的电话号码。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <from-phone-number>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
可选参数
enable_delivery_report
参数是一个可选参数,可用于配置传送报告。 如果你想要在传送短信后发出事件,则此功能很有用。 请参阅处理短信事件快速入门,了解如何为短信配置传送报告。
tag
参数是一个可选参数,可用于将标记应用于传送报告。
运行代码
从应用程序目录使用 python
命令运行应用程序。
python send-sms.py
完整的 Python 脚本如下代码所示:
import os
from azure.communication.sms import SmsClient
try:
# Create the SmsClient object that you use to send SMS messages.
sms_client = SmsClient.from_connection_string("<connection string>")
# Call send() with SMS values.
sms_responses = sms_client.send(
from_="<from-phone-number>",
to="<to-phone-number>",
message="Hello World via SMS",
enable_delivery_report=True, # optional property
tag="custom-tag") # optional property
except Exception as ex:
print('Exception:')
print(ex)
通过使用通信服务 Java 短信 SDK 发送短信,开始使用 Azure 通信服务。
完成本快速入门会从你的 Azure 帐户中扣取最多几美分的费用。
注意
在 GitHub 上查找此快速入门的最终代码。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- Java 开发工具包 (JDK) 版本 8 或更高版本。
- Apache Maven。
- 活动的通信服务资源和连接字符串。 创建通信服务资源。
- 可接收短信的电话号码。 获取电话号码。
先决条件检查
- 在终端或命令窗口中,运行
mvn -v
检查是否安装了 Maven。 - 若要查看与通信服务资源关联的电话号码,请登录到 Azure 门户,并找到你的通信服务资源。 在左侧导航窗格中选择“电话号码”。
设置应用程序环境
若要设置用于发送消息的环境,请执行以下部分中所述的步骤。
创建新的 Java 应用程序
打开终端或命令窗口,并导航到要在其中创建 Java 应用程序的目录。 运行以下命令以从 maven-archetype-quickstart 模板生成 Java 项目。
- 命令提示符
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
- PowerShell
mvn archetype:generate "-DgroupId=com.communication.quickstart" "-DartifactId=communication-quickstart" "-DarchetypeArtifactId=maven-archetype-quickstart" "-DarchetypeVersion=1.4" "-DinteractiveMode=false"
generate
目标将创建一个名称与 artifactId
值相同的目录。 在此目录下,src/main/java 目录包含项目源代码,src/test/java 目录包含测试源,pom.xml 文件是项目的项目对象模型 (POM)。
安装包
在文本编辑器中打开 pom.xml 文件。 将以下依赖项元素添加到依赖项组。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-sms</artifactId>
<version>1.0.1</version>
</dependency>
设置应用框架
在文本编辑器中打开 /src/main/java/com/communication/quickstart/App.java,添加 import 指令并删除 System.out.println("Hello world!");
语句:
package com.communication.quickstart;
import com.azure.communication.sms.models.*;
import com.azure.core.credential.AzureKeyCredential;
import com.azure.communication.sms.*;
import com.azure.core.util.Context;
import java.util.Arrays;
public class App
{
public static void main( String[] args )
{
// Quickstart code goes here.
}
}
对象模型
以下类和接口用于处理适用于 Java 的 Azure 通信服务短信 SDK 的某些主要功能。
名称 | 说明 |
---|---|
SmsClientBuilder | 此类创建 SmsClient。 为此类提供终结点、凭据和 HTTP 客户端。 |
SmsClient | 所有短信功能都需要此类。 用其发送短信。 |
SmsSendOptions | 此类提供用于添加自定义标记和配置传送报告的选项。 如果 deliveryReportEnabled 设置为 true,则在传送成功时将发出一个事件。 |
SmsSendResult | 此类包含来自短信服务的结果。 |
验证客户端
若要对客户端进行身份验证,请使用连接字符串实例化 SmsClient
。 对于凭据,请使用 Azure 门户中的 Key
。 了解如何管理资源的连接字符串。 还可以使用任何实现 com.azure.core.http.HttpClient
接口的自定义 HTTP 客户端来初始化此客户端。
若要实例化客户端,请将以下代码添加到 main
方法:
// You can get your endpoint and access key from your resource in the Azure portal.
String endpoint = "https://<resource-name>.communication.azure.com/";
AzureKeyCredential azureKeyCredential = new AzureKeyCredential("<access-key-credential>");
SmsClient smsClient = new SmsClientBuilder()
.endpoint(endpoint)
.credential(azureKeyCredential)
.buildClient();
还可以使用 connectionString
函数提供整个连接字符串,而不是提供终结点和访问密钥。
// You can get your connection string from your resource in the Azure portal.
String connectionString = "endpoint=https://<resource-name>.communication.azure.com/;accesskey=<access-key>";
SmsClient smsClient = new SmsClientBuilder()
.connectionString(connectionString)
.buildClient();
发送 1:1 短信
若要将短信发送给单个收件人,请使用单个收件人的电话号码从 SmsClient 调用 send
方法。 还可以提供可选参数,以指定是否应启用传送报告,以及设置自定义标记。
SmsSendResult sendResult = smsClient.send(
"<from-phone-number>",
"<to-phone-number>",
"Weekly Promotion");
System.out.println("Message Id: " + sendResult.getMessageId());
System.out.println("Recipient Number: " + sendResult.getTo());
System.out.println("Send Result Successful:" + sendResult.isSuccessful());
在代码中进行下述替换:
- 将
<from-phone-number>
替换为与通信服务资源关联的已启用短信的电话号码。 - 将
<to-phone-number>
替换为要向其发送消息的电话号码。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <from-phone-number>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
发送包含选项的 1: N 短信
若要将短信发送到收件人列表,请使用收件人电话号码列表调用 send
方法。 还可以提供可选参数,以指定是否应启用传送报告,以及设置自定义标记。
SmsSendOptions options = new SmsSendOptions();
options.setDeliveryReportEnabled(true);
options.setTag("Marketing");
Iterable<SmsSendResult> sendResults = smsClient.sendWithResponse(
"<from-phone-number>",
Arrays.asList("<to-phone-number1>", "<to-phone-number2>"),
"Weekly Promotion",
options /* Optional */,
Context.NONE).getValue();
for (SmsSendResult result : sendResults) {
System.out.println("Message Id: " + result.getMessageId());
System.out.println("Recipient Number: " + result.getTo());
System.out.println("Send Result Successful:" + result.isSuccessful());
}
在代码中进行下述替换:
- 将
<from-phone-number>
替换为与通信服务资源关联的已启用短信的电话号码 - 将
<to-phone-number-1>
和<to-phone-number-2>
替换为要向其发送消息的电话号码。
警告
以 E.164 国际标准格式提供电话号码,例如 +14255550123。 <from-phone-number>
的值也可以是短代码(例如 23456)或字母数字发送者 ID(例如 CONTOSO)。
setDeliveryReportEnabled
方法用于配置传送报告。 如果你想要在传送短信后发出事件,则此功能很有用。 请参阅处理短信事件快速入门,了解如何为短信配置传送报告。
可以使用 setTag
方法将标记应用于传送报告。
运行代码
导航到包含 pom.xml 文件的目录,并使用
mvn
命令编译该项目。mvn compile
生成包。
mvn package
运行以下
mvn
命令以执行应用。- 命令提示符
mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
- PowerShell
mvn exec:java "-Dexec.mainClass=com.communication.quickstart.App" "-Dexec.cleanupDaemonThreads=false"
借助 Azure 通信服务短信连接器和 Azure 逻辑应用,可创建能发送短信的自动化工作流。 本快速入门介绍如何自动发送短信以响应触发器事件,这是逻辑应用工作流的第一步。 触发器事件可以是传入电子邮件、定期计划、Azure 事件网格资源事件或 Azure 逻辑应用支持的任何其他触发器。
尽管本快速入门重点介绍如何使用连接器来响应触发器,但你也可以使用连接器来响应其他操作,这些是工作流中触发器之后的步骤。 如果不熟悉逻辑应用,请在开始之前查看什么是 Azure 逻辑应用。
注意
完成本快速入门会从你的 Azure 帐户中扣取最多几美分的费用。
先决条件
具备有效订阅的 Azure 帐户,或免费创建一个 Azure 帐户。
有效的 Azure 通信服务资源,或创建一个通信服务资源。
有效的逻辑应用资源(逻辑应用),或创建一个空白逻辑应用,但具有你要使用的触发器。 目前,Azure 通信服务短信连接器仅提供操作,因此逻辑应用至少需要一个触发器。
本快速入门使用 Office 365 Outlook 连接器提供的“新电子邮件到达时”触发器。
支持短信的电话号码,或获取一个电话号码。
重要
短信和 PSTN 功能取决于所使用的电话号码和所在的国家/地区,具体取决于 Azure 帐单邮寄地址。 有关详细信息,请访问订阅资格文档。
“添加短信”操作
若要使用 Azure 通信服务短信连接器添加“发送短信”操作,作为工作流中的新步骤,请在 Azure 门户中打开了逻辑应用工作流的逻辑应用设计器中执行以下步骤:
在设计器中,在要添加新操作的步骤下,选择“新建步骤”。 或者,若要在步骤之间添加新操作,请将指针移到这些步骤之间的箭头上方,选择加号 (+),然后选择“添加操作”。
在“选择操作”搜索框中,输入
Azure Communication Services
。 从操作列表中选择“发送短信”。现在,创建与通信服务资源的连接。
在同一订阅中:
为连接提供一个名称。
选择 Azure 通信服务资源。
选择“创建”。
使用来自通信服务资源的连接字符串:
为连接提供一个名称。
从下拉选项中选择 ConnectionString 身份验证。
输入来自通信服务资源的连接字符串。
选择“创建”。
使用服务主体(请参考“创建服务主体”):
为连接提供一个名称。
从下拉选项中选择“服务主体(Microsoft Entra 应用程序)身份验证”。
输入服务主体的租户 ID、客户端 ID 和客户端密码。
输入通信服务资源的通信服务终结点 URL 值。
选择“创建”。
在“发送短信”操作中,提供以下信息:
源电话号码和目标电话号码。 为了进行测试,你可以使用自己的电话号码作为目标电话号码。
你要发送的短信内容,例如“Hello from Logic Apps!”。
下面显示了包含示例信息的“发送短信”操作:
完成后,请在设计器工具栏上选择“保存”。
接下来,运行工作流来进行测试。
测试工作流
若要手动启动工作流,请在设计器工具栏中选择“运行”。 或者,可等待触发器触发。 无论哪种情况,工作流都应将短信发送到指定的目标电话号码。 有关详细信息,请查看如何运行工作流。
清理工作流资源
若要清理逻辑应用工作流和相关资源,请参阅如何清理逻辑应用资源。
疑难解答
若要对与短信发送相关的问题进行故障排除,可以使用事件网格启用短信发送报告,捕获有关发送的详细信息。
清理资源
如果想要清理并删除通信服务订阅,可以删除资源或资源组。 删除资源组同时也会删除与之相关联的任何其他资源。 了解有关清理资源的详细信息。
免费电话验证
若要使用新的免费电话号码发送短信,则必须执行免费验证过程。 有关如何完成免费号码验证的指导,请参阅“快速入门,了解如何提交免费验证”。 请注意,只有已完全验证的免费号码才有权发送短信流量。 将阻止来自定向到美国和加拿大电话号码的非验证免费号码的任何短信流量。
后续步骤
在本快速入门中,你了解了如何使用 Azure 通信服务发送短信。