你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 通信服务让你能够发送和接收 WhatsApp 消息。 本文介绍如何将应用与 Azure 通信高级消息 SDK 集成,以开始发送和接收 WhatsApp 贴纸消息。 完成本文需要从你的 Azure 帐户中扣取最多几美分的费用。
先决条件
- 注册到 Azure 通信服务资源的 WhatsApp Business 帐户。
- 用于接收消息的活动的 WhatsApp 电话号码。
- .NET 开发环境,如 Visual Studio、Visual Studio Code 或 .NET CLI。
设置环境
创建 .NET 项目
若要创建项目,请按照使用 Visual Studio 创建 .NET 控制台应用程序的教程进行操作。
若要编译代码,请按 Ctrl+F7。
安装包
将 Azure.Communication.Messages NuGet 包安装到你的 C# 项目。
- 打开 NuGet 包管理器:
Project
>Manage NuGet Packages...
。 - 搜索包
Azure.Communication.Messages
。 - 安装最新版本。
设置应用框架
在文本编辑器中打开 Program.cs
文件。
使用以下代码替换 Program.cs
的内容:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Azure;
using Azure.Communication.Messages;
namespace AdvancedMessagingQuickstart
{
class Program
{
public static async Task Main(string[] args)
{
Console.WriteLine("Azure Communication Services - Advanced Messages quickstart samples.");
// Quickstart code goes here
}
}
}
若要使用高级消息传递功能,请添加一个 using
指令以包含 Azure.Communication.Messages
命名空间。
using Azure.Communication.Messages;
对象模型
以下类和接口处理适用于 .NET 的 Azure 通信服务高级消息传送 SDK 的某些主要功能。
类名 | 说明 |
---|---|
NotificationMessagesClient |
连接到你的 Azure 通信服务资源。 它会发送消息。 |
StickerNotificationContent |
定义消息的贴纸内容。 |
注意
有关详细信息,请参阅 Azure SDK for .NET 参考文章 Azure.Communication.Messages 命名空间。
通用配置
按照以下步骤将所需的代码片段添加到 Program.cs
文件中的 Main 方法。
对客户端进行身份验证
消息 SDK 使用 NotificationMessagesClient
发送消息。
NotificationMessagesClient
方法使用从 Microsoft Azure 门户中的 Azure 通信服务资源获取的连接字符串进行身份验证。 有关连接字符串的详细信息,请参阅访问连接字符串和服务终结点。
为简单起见,本文使用连接字符串进行身份验证。 在生产环境中,我们建议使用服务主体。
从 Azure 门户中的 Azure 通信服务资源获取连接字符串。 在左侧,导航到“Keys
”选项卡。复制主键的 Connection string
字段。 连接字符串采用 endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
格式。
将环境变量 COMMUNICATION_SERVICES_CONNECTION_STRING
设置为连接字符串的值。
打开控制台窗口并输入以下命令:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
添加环境变量后,可能需要重启任何正在运行的、需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
有关如何为系统设置环境变量的详细信息,请按照在环境变量中存储连接字符串的步骤操作。
若要实例化 NotificationMessagesClient
,请将以下代码添加到 Main
方法:
// Retrieve connection string from environment variable
string connectionString =
Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
// Instantiate the client
var notificationMessagesClient = new NotificationMessagesClient(connectionString);
设置频道注册 ID
你已在频道注册期间创建了频道注册 ID GUID。 在门户中 Azure 通信服务资源的“频道”选项卡中可以找到它。
将它分配给名为 channelRegistrationId 的变量。
var channelRegistrationId = new Guid("<your channel registration ID GUID>");
设置收件人列表
需要提供与 WhatsApp 帐户关联的有效电话号码。 此 WhatsApp 帐户会接收本快速入门中发送的模版、文本和媒体消息。
对于此示例,可以使用个人电话号码。
收件人电话号码不能是与 WhatsApp 频道注册关联的业务电话号码(发件人 ID)。 发件人 ID 显示为发送给收件人的文本和媒体消息的发件人。
电话号码必须包括国家/地区代码。 有关电话号码格式的详细信息,请查看 WhatsApp 文档中的电话号码格式。
注意
收件人列表中当前仅支持一个电话号码。
创建如下所示的收件人列表:
var recipientList = new List<string> { "<to WhatsApp phone number>" };
示例:
// Example only
var recipientList = new List<string> { "+14255550199" };
开始在企业和 WhatsApp 用户之间发送消息
可通过下面两种方式之一发起 WhatsApp Business 帐户与 WhatsApp 用户之间的对话:
- 企业向 WhatsApp 用户发送模板消息。
- WhatsApp 用户向企业号码发送任何消息。
企业无法发起交互式对话。 企业只能在收到用户的消息后发送交互式消息。 企业只能在活动对话过程中向用户发送交互式消息。 一旦 24 小时的对话窗口结束,就只有用户才能重新开始交互式对话。 有关对话的详细信息,请访问 WhatsApp Business 平台查看定义。
若要从个人 WhatsApp 帐户发起交互式对话,请向企业号码(发送方 ID)发送消息。
代码示例
按照以下步骤将所需的代码片段添加到 Program.cs
文件的 Main 函数中。
重要
若要向 WhatsApp 用户发送贴纸消息,该 WhatsApp 用户必须先向 WhatsApp 企业帐户发送消息。 有关详细信息,请参阅开始在企业和 WhatsApp 用户之间发送消息。
向 WhatsApp 用户发送贴纸消息
Messages SDK 使 Contoso 能够在 WhatsApp 用户发起对话时发送 WhatsApp 贴纸消息。 若要发送贴纸消息,需要以下条件:
- 经过身份验证的 NotificationMessagesClient。
- WhatsApp 频道 ID。
- E16 格式的接收方电话号码。
- 贴纸媒体的 URI。
在此示例中,企业向 WhatsApp 用户发送贴纸消息:
组合贴纸内容:
var stickerLink = new Uri("https://example.com/sticker.webp");
var stickerNotificationContent = new StickerNotificationContent(channelRegistrationId, recipientList, stickerLink);
发送贴纸消息:
var stickerResponse = await notificationMessagesClient.SendAsync(stickerNotificationContent);
运行代码
- 若要编译代码,请按 Ctrl+F7。
- 要运行程序而不进行调试,请按 Ctrl+F5。
完整示例代码
注意
将代码中的所有占位符变量替换为你的值。
using Azure;
using Azure.Communication.Messages;
namespace AdvancedMessagingQuickstart
{
class Program
{
public static async Task Main(string[] args)
{
Console.WriteLine("Azure Communication Services - Send WhatsApp Messages\n");
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
NotificationMessagesClient notificationMessagesClient =
new NotificationMessagesClient(connectionString);
var channelRegistrationId = new Guid("<Your Channel ID>");
var recipientList = new List<string> { "<Recipient's WhatsApp Phone Number>" };
// Send a sticker message
var stickerLink = new Uri("https://example.com/sticker.webp");
var stickerNotificationContent = new StickerNotificationContent(channelRegistrationId, recipientList, stickerLink);
var stickerResponse = await notificationMessagesClient.SendAsync(stickerNotificationContent);
Console.WriteLine("Sticker message sent.\nPress any key to exit.\n");
Console.ReadKey();
}
}
}
先决条件
- 注册到 Azure 通信服务资源的 WhatsApp Business 帐户。
- 用于接收消息的活动的 WhatsApp 电话号码。
- Java 开发工具包 (JDK) 版本 8 或更高版本。
- Apache Maven。
设置环境
若要设置用于发送消息的环境,请完成以下部分中所述的步骤。
创建新的 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"
generate
目标将创建一个名称与 artifactId
值相同的目录。 在此目录下,src/main/java
目录包含项目源代码,src/test/java
目录包含测试源,pom.xml
文件是项目的项目对象模型 (POM)。
安装包
在文本编辑器中打开 pom.xml 文件pom.xml
。 将以下依赖项元素添加到依赖项组。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-messages</artifactId>
</dependency>
设置应用框架
在文本编辑器中打开 /src/main/java/com/communication/quickstart/App.java
,添加 import 指令并删除 System.out.println("Hello world!");
语句:
package com.communication.quickstart;
import com.azure.communication.messages.*;
import com.azure.communication.messages.models.*;
import java.util.ArrayList;
import java.util.List;
public class App
{
public static void main( String[] args )
{
// Quickstart code goes here.
}
}
对象模型
以下类和接口用于处理适用于 Java 的 Azure 通信服务消息 SDK 的某些主要功能。
类名 | 说明 |
---|---|
NotificationMessagesClient |
连接到你的 Azure 通信服务资源。 它会发送消息。 |
StickerNotificationContent |
定义消息的贴纸内容。 |
注意
有关详细信息,请参阅 com.azure.communication.messages 包中的 Azure SDK for Java 参考内容。
通用配置
按照以下步骤将所需的代码片段添加到 App.java
文件的 main 函数中。
开始在企业和 WhatsApp 用户之间发送消息
可通过下面两种方式之一发起 WhatsApp Business 帐户与 WhatsApp 用户之间的对话:
- 企业向 WhatsApp 用户发送模板消息。
- WhatsApp 用户向企业号码发送任何消息。
无论对话是如何启动的,在用户向企业发送消息之前,企业只能发送模板消息。只有在用户向企业发送消息后,企业才能在活动对话期间向用户发送文本或媒体消息。 24 小时对话窗口到期后,必须重新发起对话。 若要了解有关对话的详细信息,请访问 WhatsApp Business 平台查看定义。
对客户端进行身份验证
可使用几个不同的选项对消息客户端进行身份验证:
若要对客户端进行身份验证,请使用连接字符串实例化 NotificationMessagesClient
或 MessageTemplateClient
。 还可以使用任何实现 com.azure.core.http.HttpClient
接口的自定义 HTTP 客户端来初始化此客户端。
为简单起见,本文使用连接字符串进行身份验证。 在生产环境中,我们建议使用服务主体。
从 Azure 门户中的 Azure 通信服务资源获取连接字符串。 在左侧,导航到“Keys
”选项卡。复制 Connection string
的 Primary key
字段。 连接字符串采用 endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
格式。
将环境变量 COMMUNICATION_SERVICES_CONNECTION_STRING
设置为连接字符串的值。
打开控制台窗口并输入以下命令:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
有关如何为系统设置环境变量的详细信息,请按照在环境变量中存储连接字符串的步骤操作。
若要实例化 NotificationMessagesClient,请将以下代码添加到 main
方法:
// You can get your connection string from your resource in the Azure portal.
String connectionString = System.getenv("COMMUNICATION_SERVICES_CONNECTION_STRING");
NotificationMessagesClient notificationClient = new NotificationMessagesClientBuilder()
.connectionString(connectionString)
.buildClient();
设置频道注册 ID
频道注册 ID GUID 是在频道注册期间创建的。 可在门户中,访问 Azure 通信服务资源的“频道”选项卡来查找它。
将它分配给名为 channelRegistrationId 的变量。
String channelRegistrationId = "<your channel registration id GUID>";
设置收件人列表
你需要提供一个与 WhatsApp 帐户关联的真实电话号码。 此 WhatsApp 帐户接收本文中发送的文本和媒体消息。 在本文中,此电话号码可以是你的个人电话号码。
收件人电话号码不能是与 WhatsApp 频道注册关联的业务电话号码(发件人 ID)。 发件人 ID 显示为发送给收件人的文本和媒体消息的发件人。
电话号码应包括国家/地区代码。 有关电话号码格式的详细信息,请查看 WhatsApp 文档中的电话号码格式。
注意
收件人列表中当前仅支持一个电话号码。
创建如下所示的收件人列表:
List<String> recipientList = new ArrayList<>();
recipientList.add("<to WhatsApp phone number>");
示例:
// Example only
List<String> recipientList = new ArrayList<>();
recipientList.add("+14255550199");
代码示例
按照以下步骤将所需的代码片段添加到 App.java
文件的 main 函数中。
向 WhatsApp 用户发送贴纸消息
Messages SDK 使 Contoso 能够在 WhatsApp 用户发起对话时发送 WhatsApp 反应消息。 若要发送文本消息,需要以下条件:
- WhatsApp 频道 ID。
- E16 格式的接收方电话号码。
- 贴纸的 URL。
重要
若要向用户发送贴纸消息,该 WhatsApp 用户必须首先向 WhatsApp 企业帐户发送消息。 有关详细信息,请参阅开始在企业和 WhatsApp 用户之间发送消息。
组合并发送贴纸消息:
// Assemble sticker message
String stickerUrl = "https://www.gstatic.com/webp/gallery/1.sm.webp";
StickerNotificationContent sticker = new StickerNotificationContent("<CHANNEL_ID>", recipients, stickerUrl);
// Send sticker message
SendMessageResult textMessageResult = notificationClient.send(sticker);
// Process result
for (MessageReceipt messageReceipt : textMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
运行代码
打开包含
pom.xml
文件的目录,并使用mvn
命令编译该项目。mvn compile
通过执行以下
mvn
命令运行应用。mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
完整示例代码
在 Java 消息 SDK 的 GitHub 上查找最终生成的代码示例。
先决条件
- 注册到 Azure 通信服务资源的 WhatsApp Business 帐户。
- 用于接收消息的活动的 WhatsApp 电话号码。
-
Node.js,活动 LTS 和维护 LTS 版本(建议使用 8.11.1 和 10.14.1)。
- 在终端或命令窗口中,运行
node --version
以查看是否安装了 Node.js。
- 在终端或命令窗口中,运行
设置
创建新的 Node.js 应用程序
为应用创建一个新目录,并在终端或命令窗口中打开该目录。
运行以下命令。
mkdir advance-messages-quickstart && cd advance-messages-quickstart
运行以下命令以使用默认设置创建
package.json
文件。npm init -y
使用文本编辑器在项目根目录中创建名为“
send-messages.js
”的文件。将以下代码片段添加到文件
send-messages.js
中。async function main() { // Quickstart code goes here. } main().catch((error) => { console.error("Encountered an error while sending message: ", error); process.exit(1); });
完成以下部分,将此示例的源代码添加到你创建的 send-messages.js
文件。
安装包
使用 npm install
命令安装适用于 JavaScript 的 Azure 通信服务高级消息传送 SDK。
npm install @azure-rest/communication-messages --save
--save
选项将该库作为 package.json 文件中的依赖项列出。
对象模型
以下类和接口用于处理适用于 JavaScript 的 Azure 通信服务消息 SDK 的某些主要功能。
类名 | 说明 |
---|---|
NotificationMessagesClient |
连接到你的 Azure 通信服务资源。 它会发送消息。 |
StickerNotificationContent |
定义消息的贴纸内容。 |
注意
有关详细信息,请参阅适用于 JavaScript 的 Azure SDK 参考文章 @Azure-rest/communication-messages 包
通用配置
按照以下步骤将所需的代码片段添加到 send-messages.js
文件。
开始在企业和 WhatsApp 用户之间发送消息
可通过下面两种方式之一发起 WhatsApp Business 帐户与 WhatsApp 用户之间的对话:
- 企业向 WhatsApp 用户发送模板消息。
- WhatsApp 用户向企业号码发送任何消息。
无论对话是如何启动的,在用户向企业发送消息之前,企业只能发送模板消息。只有在用户向企业发送消息后,企业才能在活动对话期间向用户发送文本或媒体消息。 24 小时对话窗口到期后,必须重新发起对话。 若要了解有关对话的详细信息,请访问 WhatsApp Business 平台查看定义。
对客户端进行身份验证
以下代码使用 dotenv 包从名为 COMMUNICATION_SERVICES_CONNECTION_STRING
的环境变量中检索资源的连接字符串。
为简单起见,本文使用连接字符串进行身份验证。 在生产环境中,我们建议使用服务主体。
从 Azure 门户中的 Azure 通信服务资源获取连接字符串。 在左侧,导航到“Keys
”选项卡。复制 Connection string
的 Primary key
字段。 连接字符串采用 endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
格式。
将环境变量 COMMUNICATION_SERVICES_CONNECTION_STRING
设置为连接字符串的值。
打开控制台窗口并输入以下命令:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
有关如何为系统设置环境变量的详细信息,请按照在环境变量中存储连接字符串的步骤操作。
若要实例化 NotificationClient,请将以下代码添加到 Main
方法:
const NotificationClient = require("@azure-rest/communication-messages").default;
// Set Connection string
const connectionString = process.env["COMMUNICATION_SERVICES_CONNECTION_STRING"];
// Instantiate the client
const client = NotificationClient(connectionString);
设置频道注册 ID
频道注册 ID GUID 是在频道注册期间创建的。 可在门户中,访问 Azure 通信服务资源的“频道”选项卡来查找它。
将它分配给名为 channelRegistrationId 的变量。
const channelRegistrationId = "<your channel registration id GUID>";
设置收件人列表
你需要提供一个与 WhatsApp 帐户关联的真实电话号码。 此 WhatsApp 帐户接收本文中发送的模板、文本和媒体消息。 在本文中,此电话号码可以是你的个人电话号码。
收件人电话号码不能是与 WhatsApp 频道注册关联的业务电话号码(发件人 ID)。 发件人 ID 显示为发送给收件人的文本和媒体消息的发件人。
电话号码应包括国家/地区代码。 有关电话号码格式的详细信息,请查看 WhatsApp 文档中的电话号码格式。
注意
收件人列表中当前仅支持一个电话号码。
创建如下所示的收件人列表:
const recipientList = ["<to WhatsApp phone number>"];
示例:
// Example only
const recipientList = ["+14255550199"];
代码示例
按照以下步骤将所需的代码片段添加到 send-messages.js
文件。
向 WhatsApp 用户发送贴纸消息
Messages SDK 使 Contoso 能够在 WhatsApp 用户发起对话时发送 WhatsApp 反应消息。 若要发送文本消息,需要以下条件:
- WhatsApp 频道 ID。
- E16 格式的接收方电话号码。
- 贴纸的 URL。
重要
若要向用户发送贴纸消息,该 WhatsApp 用户必须首先向 WhatsApp 企业帐户发送消息。 有关详细信息,请参阅开始在企业和 WhatsApp 用户之间发送消息。
在此示例中,企业向用户发送贴纸消息:
/**
* @summary Send a sticker message. Supported sticker type - (.webp)
*/
const { AzureKeyCredential } = require("@azure/core-auth");
const NotificationClient = require("@azure-rest/communication-messages").default,
{ isUnexpected } = require("@azure-rest/communication-messages");
// Load the .env file if it exists
require("dotenv").config();
async function main() {
const credential = new AzureKeyCredential(process.env.ACS_ACCESS_KEY || "");
const endpoint = process.env.ACS_URL || "";
const client = NotificationClient(endpoint, credential);
console.log("Sending message...");
const result = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: process.env.CHANNEL_ID || "",
to: [process.env.RECIPIENT_PHONE_NUMBER || ""],
kind: "sticker",
mediaUri: "https://www.gstatic.com/webp/gallery/1.sm.webp",
},
});
console.log("Response: " + JSON.stringify(result, null, 2));
if (isUnexpected(result)) {
throw new Error("Failed to send message");
}
const response = result;
response.body.receipts.forEach((receipt) => {
console.log("Message sent to:" + receipt.to + " with message id:" + receipt.messageId);
});
}
main().catch((error) => {
console.error("Encountered an error while sending message: ", error);
throw error;
});
运行代码
使用 node 命令运行添加到 send-messages.js 文件中的代码。
node ./send-messages.js
完整示例代码
在 GitHub JavaScript 消息 SDK 上查找此示例的最终代码。
先决条件
用于接收消息的活动的 WhatsApp 电话号码。
适用于操作系统的 Python 3.7+。
设置
创建新的 Python 应用程序
在终端或控制台窗口中,为应用程序创建一个新文件夹并打开它。
mkdir messages-quickstart && cd messages-quickstart
安装包
使用适用于 Python 1.1.0 或更高版本的 Azure 通信消息客户端库。
在控制台提示中运行以下命令:
pip install azure-communication-messages
对于“交互式消息、反应和贴纸”,请使用以下 Beta 版本:
pip install azure-communication-messages==1.2.0b1
设置应用框架
创建一个名为 messages-quickstart.py
的新文件并添加基本程序结构。
type nul > messages-quickstart.py
基本程序结构
import os
class MessagesQuickstart(object):
print("Azure Communication Services - Advanced Messages SDK Quickstart")
if __name__ == '__main__':
messages = MessagesQuickstart()
对象模型
以下类和接口用于处理适用于 Python 的 Azure 通信服务消息 SDK 的某些主要功能。
类名 | 说明 |
---|---|
NotificationMessagesClient |
连接到你的 Azure 通信服务资源。 它会发送消息。 |
StickerNotificationContent |
定义消息的贴纸内容。 |
注意
有关详细信息,请参阅 Azure SDK for Python 参考文章消息包。
通用配置
按照以下步骤将所需的代码片段添加到 messages-quickstart.py
Python 程序。
对客户端进行身份验证
发送的消息使用 NotificationMessagesClient。 NotificationMessagesClient 使用从 Azure 门户中的 Azure 通信服务资源获取的连接字符串进行身份验证。F
有关连接字符串的详细信息,请参阅访问连接字符串和服务终结点。
从 Microsoft Azure 门户获取 Azure 通信资源连接字符串,如屏幕截图中所示。 在左侧,导航到“Keys
”选项卡。复制主键的 Connection string
字段。 连接字符串采用 endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
格式。
将环境变量 COMMUNICATION_SERVICES_CONNECTION_STRING
设置为连接字符串的值。
打开控制台窗口并输入以下命令:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
添加环境变量后,可能需要重启任何正在运行的、需要读取环境变量的程序(包括控制台窗口)。 例如,如果使用 Visual Studio 作为编辑器,请在运行示例之前重启 Visual Studio。
有关如何为系统设置环境变量的详细信息,请按照在环境变量中存储连接字符串的步骤操作。
# Get a connection string to our Azure Communication Services resource.
connection_string = os.getenv("COMMUNICATION_SERVICES_CONNECTION_STRING")
def send_template_message(self):
from azure.communication.messages import NotificationMessagesClient
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
设置频道注册 ID
你已在频道注册期间创建了频道注册 ID GUID。 在门户中 Azure 通信服务资源的“频道”选项卡中可以找到它。
将它分配给名为 channelRegistrationId 的变量。
channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")
设置收件人列表
需要提供与 WhatsApp 帐户关联的有效电话号码。 此 WhatsApp 帐户接收本文中发送的模板、文本和媒体消息。
对于此示例,可以使用个人电话号码。
收件人电话号码不能是与 WhatsApp 频道注册关联的业务电话号码(发件人 ID)。 发件人 ID 显示为发送给收件人的文本和媒体消息的发件人。
电话号码必须包括国家/地区代码。 有关电话号码格式的详细信息,请查看 WhatsApp 文档中的电话号码格式。
注意
收件人列表中当前仅支持一个电话号码。
设置如下所示的收件人列表:
phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")
用例:
# Example only
to=[self.phone_number],
开始在企业和 WhatsApp 用户之间发送消息
可通过下面两种方式之一发起 WhatsApp Business 帐户与 WhatsApp 用户之间的对话:
- 企业向 WhatsApp 用户发送模板消息。
- WhatsApp 用户向企业号码发送任何消息。
企业无法发起交互式对话。 企业只能在收到用户的消息后发送交互式消息。 企业只能在活动对话过程中向用户发送交互式消息。 一旦 24 小时的对话窗口结束,就只有用户才能重新开始交互式对话。 有关对话的详细信息,请访问 WhatsApp Business 平台查看定义。
若要从个人 WhatsApp 帐户发起交互式对话,请向企业号码(发送方 ID)发送消息。
代码示例
按照以下步骤将所需的代码片段添加到 messages-quickstart.py
Python 程序。
向 WhatsApp 用户发送贴纸消息
Messages SDK 使 Contoso 能够在 WhatsApp 用户发起对话时发送 WhatsApp 贴纸消息。 若要发送贴纸消息,需要以下条件:
可以使用给定属性创建贴纸消息内容:
操作类型 说明 StickerNotificationContent
此类定义贴纸消息内容。 Media_Uri
此属性定义动画/静态贴纸的 URI。
重要
若要向 WhatsApp 用户发送文本消息,WhatsApp 用户必须先向 WhatsApp 企业帐户发送消息。 有关详细信息,请参阅开始在企业和 WhatsApp 用户之间发送消息。
在此示例中,企业向 WhatsApp 用户发送贴纸消息:
def send_sticker_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import StickerNotificationContent
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
video_options = StickerNotificationContent(
channel_registration_id=self.channel_id,
to=[self.phone_number],
media_uri="https://www.simpleimageresizer.com/_uploads/photos/d299e618/1.sm_512x512_cropped.webp",
)
# calling send() with whatsapp message details
message_responses = messaging_client.send(video_options)
response = message_responses.receipts[0]
print("Message with message id {} was successful sent to {}".format(response.message_id, response.to))
若要运行 send_sticker_message()
,请更新 main 方法:
#Calling send_sticker_message()
messages.send_sticker_message()
运行代码
若要运行代码,请确保你位于 messages-quickstart.py
文件所在的目录中。
python reaction-messages-quickstart.py
Azure Communication Services - Advanced Messages Quickstart
WhatsApp Sticker Message with message id <<GUID>> was successfully sent to <<ToRecipient>>
完整示例代码
注意
将代码中的所有占位符变量替换为你的值。
import os
class MessagesQuickstart(object):
print("Azure Communication Services - Advanced Messages SDK Quickstart using connection string.")
# Advanced Messages SDK implementations goes in this section.
connection_string = os.getenv("COMMUNICATION_SERVICES_CONNECTION_STRING")
phone_number = os.getenv("RECIPIENT_PHONE_NUMBER")
channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID")
def send_sticker_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import StickerNotificationContent
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
video_options = StickerNotificationContent(
channel_registration_id=self.channel_id,
to=[self.phone_number],
media_uri="https://www.simpleimageresizer.com/_uploads/photos/d299e618/1.sm_512x512_cropped.webp",
)
# calling send() with whatsapp message details
message_responses = messaging_client.send(video_options)
response = message_responses.receipts[0]
print("WhatsApp Sticker Message with message id {} was successful sent to {}".format(response.message_id, response.to))
if __name__ == '__main__':
messages = MessagesQuickstart()
messages.send_sticker_message()
其他示例
可以在 Python 消息 SDK 上的 GitHub 上查看和下载其他示例代码。
使用 WhatsApp 贴纸的常见问题解答
支持哪些贴纸格式和大小限制?
贴纸类型 | 扩展 | MIME 类型 | 最大大小 |
---|---|---|---|
动画贴纸 | .webp | image/webp | 500 KB |
静态贴纸 | .webp | image/webp | 100 KB |
上传贴纸的正确尺寸是什么?
贴纸尺寸应为 512 x 512 像素。
后续步骤
有关详细信息,请参阅: