Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Службы коммуникации Azure позволяет отправлять и получать сообщения WhatsApp. В этой статье описывается, как интегрировать приложение с пакетом SDK для расширенных сообщений Azure для отправки и получения сообщений WhatsApp. Выполнение этой статьи вызывает небольшую стоимость нескольких центов сша или меньше в вашей учетной записи Azure.
Необходимые компоненты
- Учетная запись WhatsApp Business, зарегистрированная в ресурсе Службы коммуникации Azure.
- Активный номер телефона WhatsApp для получения сообщений.
- Среда разработки .NET, например Visual Studio, Visual Studio Code или .NET CLI.
Настройка среды
Создание проекта .NET
Чтобы создать проект, следуйте инструкциям из руководства по созданию консольного приложения .NET с помощью Visual Studio.
Чтобы скомпилировать код, нажмите клавиши CTRL+F7.
Установка пакета
Установите пакет NuGet Azure.Communication.Messages в проект C#.
- Откройте диспетчер пакетов
Project
>Manage NuGet Packages...
NuGet. - Найдите пакет
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;
Объектная модель
Следующие классы и интерфейсы обрабатывают некоторые основные функции пакета SDK для предварительного обмена сообщениями Службы коммуникации Azure для .NET.
Имя класса | Описание |
---|---|
NotificationMessagesClient |
Подключается к ресурсу Службы коммуникации Azure. Он отправляет сообщения. |
MessageTemplate |
Определяет используемый шаблон и содержимое свойств шаблона для сообщения. |
TemplateNotificationContent |
Определяет "кто" и "что" сообщения шаблона, которое вы собираетесь отправить. |
TextNotificationContent |
Определяет "кто" и "что" текстового сообщения, которое вы собираетесь отправить. |
ImageNotificationContent |
Определяет "кто" и "что" сообщения мультимедиа изображения, которое вы собираетесь отправить. |
DocumentNotificationContent |
Определяет "кто" и "что" сообщения мультимедиа документа, которое вы планируете отправить. |
VideoNotificationContent |
Определяет "кто" и "что" сообщения видеомедийного сообщения, которое вы планируете отправить. |
AudioNotificationContent |
Определяет "кто" и "что" сообщения аудиомедиаля, которое вы собираетесь отправить. |
Примечание.
Дополнительные сведения см. в справочнике по azure SDK для .NET для пространства имен Azure.Communication.Messages.
Распространенные конфигурации
Выполните следующие действия, чтобы добавить необходимые фрагменты кода в программу python messages-quickstart.py.
- Проверка подлинности клиента.
- Задайте идентификатор регистрации канала.
- Задайте список получателей.
- Начните отправлять сообщения между бизнесом и пользователем WhatsApp.
аутентификация клиента;
Пакет SDK сообщений используется для отправки NotificationMessagesClient
сообщений. Метод NotificationMessagesClient
проходит проверку подлинности с помощью строка подключения, полученного из ресурса Службы коммуникации Azure в портал Azure. Дополнительные сведения о строка подключения см. в разделе access-your-connection-strings-and-service-endpoints.
Для простоты в этой статье используется строка подключения для проверки подлинности. В рабочих средах рекомендуется использовать субъекты-службы.
Получите строка подключения из ресурса Службы коммуникации 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);
Установка идентификатора регистрации канала
Вы создали GUID идентификатора регистрации канала во время регистрации канала. Найдите его на портале на вкладке "Каналы" ресурса Службы коммуникации Azure.
Назначьте его переменной, называемой channelRegistrationId.
var channelRegistrationId = new Guid("<your channel registration ID GUID>");
Настройка списка получателей
Необходимо указать активный номер телефона, связанный с учетной записью WhatsApp. Эта учетная запись WhatsApp получает шаблон, текст и сообщения мультимедиа, отправленные в этом кратком руководстве.
В этом примере можно использовать личный номер телефона.
Номер телефона получателя не может быть бизнес-номером телефона (идентификатор отправителя), связанным с регистрацией канала WhatsApp. Идентификатор отправителя отображается как отправитель текстовых сообщений и сообщений мультимедиа, отправленных получателю.
Номер телефона должен содержать код страны. Дополнительные сведения о форматировании номеров телефонов см. в документации 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 Platform.
Чтобы инициировать интерактивную беседу из личной учетной записи WhatsApp, отправьте сообщение в свой бизнес-номер (идентификатор отправителя).
Примеры кода
Выполните следующие действия, чтобы добавить необходимые фрагменты кода в основную функцию Program.cs
файла.
- Отправьте текстовое сообщение пользователю WhatsApp.
- Отправьте сообщение мультимедиа изображения пользователю WhatsApp.
- Отправьте сообщение мультимедиа документа пользователю WhatsApp.
- Отправьте звуковое сообщение мультимедиа пользователю WhatsApp.
- Отправьте видеомедийное сообщение пользователю WhatsApp.
Внимание
Чтобы отправить текстовое или медиа-сообщение пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp Business. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Отправка текстового сообщения пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять текстовые сообщения WhatsApp, инициированные пользователями WhatsApp. Чтобы отправить текстовое сообщение, вам потребуется:
- Прошедший проверку подлинности NotificationMessagesClient
- Идентификатор канала WhatsApp
- Номер телефона получателя в формате E16
- Текст и текст сообщения, отправляемый
В этом примере мы отвечаем пользователю WhatsApp с текстом: "Thanks for your feedback.\n From Notification Messaging SDK."
Сборка и отправка текстового сообщения:
// Assemble text message
var textContent =
new TextNotificationContent(channelRegistrationId, recipientList, "Thanks for your feedback.\n From Notification Messaging SDK");
// Send text message
Response<SendMessageResult> sendTextMessageResult =
await notificationMessagesClient.SendAsync(textContent);
Отправка сообщения мультимедиа изображения пользователю WhatsApp
Пакет SDK для сообщений позволяет Contoso отправлять сообщения мультимедиа WhatsApp пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Прошедший проверку подлинности NotificationMessagesClient.
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- универсальный код ресурса (URI) образа Media.
Внимание
По состоянию на пакет SDK версии 1.1.0 не MediaNotificationContent
рекомендуется использовать для образов. Мы рекомендуем использовать ImageNotificationContent
для отправки изображений. Изучите другие классы, относящиеся к содержимому, для других типов мультимедиа, таких как DocumentNotificationContent
, VideoNotificationContent
и AudioNotificationContent
.
Сборка сообщения изображения:
var imageLink = new Uri("https://example.com/image.jpg");
var imageNotificationContent = new ImageNotificationContent(channelRegistrationId, recipientList, imageLink)
{
Caption = "Check out this image."
};
Отправьте сообщение изображения:
var imageResponse = await notificationMessagesClient.SendAsync(imageNotificationContent);
Отправка сообщения мультимедиа документа пользователю WhatsApp
Пакет SDK для сообщений позволяет Contoso отправлять сообщения мультимедиа WhatsApp пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Прошедший проверку подлинности NotificationMessagesClient.
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- URI документа Media.
Сборка содержимого документа:
var documentLink = new Uri("https://example.com/document.pdf");
var documentNotificationContent = new DocumentNotificationContent(channelRegistrationId, recipientList, documentLink)
{
Caption = "Check out this document.",
FileName = "document.pdf"
};
Отправьте сообщение о документе:
var documentResponse = await notificationMessagesClient.SendAsync(documentNotificationContent);
Отправка видеомедийного сообщения пользователю WhatsApp
Пакет SDK для сообщений позволяет Contoso отправлять сообщения мультимедиа WhatsApp пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Прошедший проверку подлинности NotificationMessagesClient.
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- Универсальный код ресурса (URI) видеомедийного носителя.
Собрать видеосообщение:
var videoLink = new Uri("https://example.com/video.mp4");
var videoNotificationContent = new VideoNotificationContent(channelRegistrationId, recipientList, videoLink)
{
Caption = "Check out this video."
};
Отправьте видеосообщение:
var videoResponse = await notificationMessagesClient.SendAsync(videoNotificationContent);
Отправка сообщения аудиомедийного носителя пользователю WhatsApp
Пакет SDK для сообщений позволяет Contoso отправлять сообщения мультимедиа WhatsApp пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Прошедший проверку подлинности NotificationMessagesClient.
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- Универсальный код ресурса (URI) звукового носителя.
Сборка звукового сообщения:
var audioLink = new Uri("https://example.com/audio.mp3");
var audioNotificationContent = new AudioNotificationContent(channelRegistrationId, recipientList, audioLink);
Отправьте звуковое сообщение:
var audioResponse = await notificationMessagesClient.SendAsync(audioNotificationContent);
Выполнение кода
Создайте и запустите программу.
Для отправки текстового или медиа-сообщения пользователю WhatsApp необходимо активное общение между учетной записью WhatsApp business и пользователем WhatsApp.
Если у вас нет активной беседы, в этом примере добавьте ожидание между отправкой сообщения шаблона и отправкой текстового сообщения. Эта добавленная задержка дает достаточно времени для ответа на бизнес в учетной записи WhatsApp пользователя. Полный пример в примере кода запрашивает ввод вручную пользователем перед отправкой следующего сообщения.
При успешном выполнении вы получите три сообщения в учетной записи WhatsApp пользователя.
- Чтобы скомпилировать код, нажмите клавиши CTRL+F7.
- Чтобы запустить программу без отладки, нажмите клавиши CTRL+F5.
Полный пример кода
using System;
using System.Collections.Generic;
using System.Linq;
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 - 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 sample template sample_template
string templateName = "sample_template";
string templateLanguage = "en_us";
MessageTemplate sampleTemplate = new MessageTemplate(templateName, templateLanguage);
TemplateNotificationContent templateContent =
new TemplateNotificationContent(channelRegistrationId, recipientList, sampleTemplate);
Response<SendMessageResult> sendTemplateMessageResult =
await notificationMessagesClient.SendAsync(templateContent);
PrintResult(sendTemplateMessageResult);
Console.WriteLine("Template message sent.\nWait until the WhatsApp user responds " +
"to the template message, then press any key to continue.\n");
Console.ReadKey();
// Send a text message
string messageText = "Thanks for your feedback.";
TextNotificationContent textContent =
new TextNotificationContent(channelRegistrationId, recipientList, messageText);
Response<SendMessageResult> sendTextMessageResult =
await notificationMessagesClient.SendAsync(textContent);
PrintResult(sendTextMessageResult);
Console.WriteLine($"Text message sent to my phoneNumber.\nPress any key to continue.\n");
Console.ReadKey();
// Send a media message
Uri uri = new Uri("https://aka.ms/acsicon1");
ImageNotificationContent imageContent =
new ImageNotificationContent(channelRegistrationId, recipientList, uri);
Response<SendMessageResult> sendMediaMessageResult =
await notificationMessagesClient.SendAsync(imageContent);
PrintResult(sendMediaMessageResult);
Console.WriteLine("Media message sent.\nPress any key to exit.\n");
Console.ReadKey();
}
public static void PrintResult(Response<SendMessageResult> result)
{
Console.WriteLine($"Response: {result.GetRawResponse().Status} " +
$"({result.GetRawResponse().ReasonPhrase})");
Console.WriteLine($"Date: " +
$"{result.GetRawResponse().Headers.First(header => header.Name == "Date").Value}");
Console.WriteLine($"ClientRequestId: {result.GetRawResponse().ClientRequestId}");
Console.WriteLine($"MS-CV: " +
$"{result.GetRawResponse().Headers.First(header => header.Name == "MS-CV").Value}");
foreach (var receipts in result.Value.Receipts)
{
Console.WriteLine($"MessageId: {receipts.MessageId}");
}
Console.WriteLine($"\n");
}
}
}
Необходимые компоненты
- Учетная запись WhatsApp Business, зарегистрированная в ресурсе Службы коммуникации Azure.
- Активный номер телефона WhatsApp для получения сообщений.
- Пакет средств разработки Java (JDK) версии 8 или более поздней версии.
- Apache Maven.
Настройка среды
Чтобы настроить среду для отправки сообщений, выполните действия, описанные в следующих разделах.
Создание нового приложения Java
Откройте терминал или командное окно и перейдите в каталог, в котором нужно создать приложение Java. Выполните следующую команду, чтобы создать проект Java из maven-archetype-quickstart
шаблона.
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-messages</artifactId>
</dependency>
Настройка платформы приложения
Откройте /src/main/java/com/communication/quickstart/App.java
в текстовом редакторе, добавьте директивы импорта и удалите инструкцию 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.
}
}
Примеры кода
Выполните следующие действия, чтобы добавить необходимые фрагменты кода в основную функцию App.java
файла.
- Начните отправлять сообщения между бизнесом и пользователем WhatsApp.
- Проверка подлинности клиента.
- Задайте идентификатор регистрации канала.
- Задайте список получателей.
- Отправка текстового сообщения пользователю WhatsApp
- Отправка сообщения мультимедиа изображения пользователю WhatsApp
- Отправка сообщения мультимедиа документа пользователю WhatsApp
- Отправка сообщения аудиомедийного носителя пользователю WhatsApp
- Отправка видеомедийного сообщения пользователю WhatsApp
Начало отправки сообщений между бизнесом и пользователем WhatsApp
Беседы между учетной записью WhatsApp Business и пользователем WhatsApp можно инициировать одним из двух способов:
- Бизнес отправляет сообщение шаблона пользователю WhatsApp.
- Пользователь WhatsApp отправляет любое сообщение в бизнес-номер.
Независимо от того, как была запущена беседа, бизнес может отправлять сообщения только шаблонов, пока пользователь не отправляет сообщение в бизнес. Только после того, как пользователь отправляет сообщение в бизнес, бизнес может отправлять текстовые или медиа-сообщения пользователю во время активной беседы. После истечения срока действия 24-часового окна беседы необходимо повторно выполнить беседу. Дополнительные сведения о беседах см. в определении в WhatsApp Business Platform.
аутентификация клиента;
Существует несколько различных вариантов проверки подлинности клиента сообщения:
Чтобы выполнить проверку подлинности клиента, создайте экземпляр NotificationMessagesClient
или MessageTemplateClient
строка подключения. Вы также можете инициализировать клиент с помощью любого пользовательского HTTP-клиента, реализующего com.azure.core.http.HttpClient
интерфейс.
Для простоты в этой статье используется строка подключения для проверки подлинности. В рабочих средах рекомендуется использовать субъекты-службы.
Получите строка подключения из ресурса Службы коммуникации 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();
Установка идентификатора регистрации канала
Guid идентификатора регистрации канала был создан во время регистрации канала. Его можно найти на портале на вкладке "Каналы" ресурса Службы коммуникации Azure.
Назначьте его переменной, называемой channelRegistrationId.
String channelRegistrationId = "<your channel registration id GUID>";
Настройка списка получателей
Необходимо указать реальный номер телефона с учетной записью WhatsApp, связанной с ней. Эта учетная запись WhatsApp получает текстовые и медиа-сообщения, отправленные в этой статье. В этой статье этот номер телефона может быть вашим личным номером телефона.
Номер телефона получателя не может быть бизнес-номером телефона (идентификатор отправителя), связанным с регистрацией канала WhatsApp. Идентификатор отправителя отображается как отправитель текстовых сообщений и сообщений мультимедиа, отправленных получателю.
Номер телефона должен содержать код страны. Дополнительные сведения о форматировании номеров телефонов см. в документации WhatsApp для форматов номеров телефонов.
Примечание.
В настоящее время в списке получателей поддерживается только один номер телефона.
Создайте список получателей следующим образом:
List<String> recipientList = new ArrayList<>();
recipientList.add("<to WhatsApp phone number>");
Пример:
// Example only
List<String> recipientList = new ArrayList<>();
recipientList.add("+14255550199");
Отправка текстового сообщения пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять текстовые сообщения WhatsApp, инициированные пользователями WhatsApp. Для отправки текстовых сообщений требуются следующие сведения:
- Идентификатор канала WhatsApp
- Номер телефона получателя в формате E16
- Текст и текст сообщения, отправляемый
В этом примере мы отвечаем пользователю WhatsApp с текстом "Thanks for your feedback.\n From Notification Messaging SDK."
Внимание
Чтобы отправить текстовое сообщение пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp Business. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Сборка и отправка текстового сообщения:
// Assemble text message
TextNotificationContent textContent = new TextNotificationContent(channelRegistrationId, recipientList, "“Thanks for your feedback.\n From Notification Messaging SDK");
// Send text message
SendMessageResult textMessageResult = notificationClient.send(textContent);
// Process result
for (MessageReceipt messageReceipt : textMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
Отправка сообщения мультимедиа изображения пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения мультимедиа (изображения, видео, аудио или документ) пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Идентификатор канала WhatsApp
- Номер телефона получателя в формате E16
- URL-адрес носителя изображений
Внимание
По состоянию на пакет SDK версии 1.1.0 не MediaNotificationContent
рекомендуется использовать для образов. Мы рекомендуем использовать ImageNotificationContent
для отправки изображений. Изучите другие классы, относящиеся к содержимому, для других типов мультимедиа, таких как DocumentNotificationContent
, VideoNotificationContent
и AudioNotificationContent
.
Внимание
Чтобы отправить сообщение изображения пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp для бизнеса. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Сборка и отправка сообщения изображения:
// Assemble image message
String imageUrl = "https://example.com/image.jpg";
ImageNotificationContent imageContent = new ImageNotificationContent(channelRegistrationId, recipientList, imageUrl);
// Send image message
SendMessageResult imageMessageResult = notificationClient.send(imageContent);
// Process result
for (MessageReceipt messageReceipt : imageMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
Отправка видеомедийного сообщения пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения мультимедиа (изображения, видео, аудио или документ) пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- URL-адрес мультимедиа видео.
Внимание
Чтобы отправить видеосообщение пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp Business. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Сборка и отправка видеосообщения:
// Assemble video message
String videoUrl = "https://example.com/video.mp4";
VideoNotificationContent videoContent = new VideoNotificationContent(channelRegistrationId, recipientList, videoUrl);
// Send video message
SendMessageResult videoMessageResult = notificationClient.send(videoContent);
// Process result
for (MessageReceipt messageReceipt : videoMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
Отправка сообщения аудиомедийного носителя пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения мультимедиа (изображения, видео, аудио или документ) пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- URL-адрес аудиомедийного носителя.
Внимание
Чтобы отправить звуковое сообщение пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp business. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Сборка и отправка звукового сообщения:
// Assemble audio message
String audioUrl = "https://example.com/audio.mp3";
AudioNotificationContent audioContent = new AudioNotificationContent(channelRegistrationId, recipientList, audioUrl);
// Send audio message
SendMessageResult audioMessageResult = notificationClient.send(audioContent);
// Process result
for (MessageReceipt messageReceipt : audioMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
Отправка сообщения мультимедиа документа пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения мультимедиа (изображения, видео, аудио или документ) пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- URL-адрес носителя document.
Внимание
Чтобы отправить сообщение документа пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp для бизнеса. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Сборка и отправка сообщения документа:
// Assemble document message
String docUrl = "https://example.com/document.pdf";
DocumentNotificationContent docContent = new DocumentNotificationContent(channelRegistrationId, recipientList, docUrl);
// Send document message
SendMessageResult docMessageResult = notificationClient.send(docContent);
// Process result
for (MessageReceipt messageReceipt : docMessageResult.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"
Полный пример кода
Найдите завершенную версию на сайте GitHub в клиентской библиотеке сообщений Azure для Java.
Необходимые компоненты
- Учетная запись WhatsApp Business, зарегистрированная в ресурсе Службы коммуникации Azure.
- Активный номер телефона WhatsApp для получения сообщений.
- Node.js версии LTS и обслуживания LTS (рекомендуется 8.11.1 и 10.14.1).
-
рекомендуется Node.js использовать версии LTS и обслуживания active 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
Используйте команду, чтобы установить пакет SDK для предварительного обмена сообщениями Службы коммуникации Azure для JavaScript.
npm install @azure-rest/communication-messages --save
Параметр --save
указывает библиотеку как зависимость в файле пакета package.json.
Примеры кода
Выполните следующие действия, чтобы добавить необходимые фрагменты кода в основную функцию send-messages.js
файла.
- Начните отправлять сообщения между бизнесом и пользователем WhatsApp.
- Проверка подлинности клиента.
- Задайте идентификатор регистрации канала.
- Задайте список получателей.
- Отправьте текстовое сообщение пользователю WhatsApp.
- Отправьте сообщение мультимедиа изображения пользователю WhatsApp.
- Отправьте сообщение мультимедиа документа пользователю WhatsApp.
- Отправьте звуковое сообщение мультимедиа пользователю WhatsApp.
- Отправьте видеомедийное сообщение пользователю WhatsApp.
Начало отправки сообщений между бизнесом и пользователем WhatsApp
Беседы между учетной записью WhatsApp Business и пользователем WhatsApp можно инициировать одним из двух способов:
- Бизнес отправляет сообщение шаблона пользователю WhatsApp.
- Пользователь WhatsApp отправляет любое сообщение в бизнес-номер.
Независимо от того, как была запущена беседа, бизнес может отправлять сообщения только шаблонов, пока пользователь не отправляет сообщение в бизнес. Только после того, как пользователь отправляет сообщение в бизнес, бизнес может отправлять текстовые или медиа-сообщения пользователю во время активной беседы. После истечения срока действия 24-часового окна беседы необходимо повторно выполнить беседу. Дополнительные сведения о беседах см. в определении в WhatsApp Business Platform.
аутентификация клиента;
Следующий код извлекает строка подключения ресурса из переменной среды с именем COMMUNICATION_SERVICES_CONNECTION_STRING
пакета dotenv.
Для простоты в этой статье используется строка подключения для проверки подлинности. В рабочих средах рекомендуется использовать субъекты-службы.
Получите строка подключения из ресурса Службы коммуникации 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);
Установка идентификатора регистрации канала
Guid идентификатора регистрации канала был создан во время регистрации канала. Его можно найти на портале на вкладке "Каналы" ресурса Службы коммуникации Azure.
Назначьте его переменной, называемой channelRegistrationId.
const channelRegistrationId = "<your channel registration id GUID>";
Настройка списка получателей
Необходимо указать реальный номер телефона с учетной записью WhatsApp, связанной с ней. Эта учетная запись WhatsApp получает шаблоны, текстовые и мультимедийные сообщения, упомянутые в этой статье. В этой статье этот номер телефона может быть вашим личным номером телефона.
Номер телефона получателя не может быть бизнес-номером телефона (идентификатор отправителя), связанным с регистрацией канала WhatsApp. Идентификатор отправителя отображается как отправитель текстовых сообщений и сообщений мультимедиа, отправленных получателю.
Номер телефона должен содержать код страны. Дополнительные сведения о форматировании номеров телефонов см. в документации WhatsApp для форматов номеров телефонов.
Примечание.
В настоящее время в списке получателей поддерживается только один номер телефона.
Создайте список получателей следующим образом:
const recipientList = ["<to WhatsApp phone number>"];
Пример:
// Example only
const recipientList = ["+14255550199"];
Внимание
Чтобы отправить сообщение пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp Business. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Отправка текстового сообщения пользователю WhatsApp
Пакет SDK для сообщений позволяет Contoso отправлять текстовые сообщения WhatsApp при инициировании пользователями WhatsApp. Для отправки текстовых сообщений:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- Текст сообщения или текст, отправляемый.
В этом примере мы отвечаем пользователю WhatsApp с текстом "Thanks for your feedback.\n From Notification Messaging SDK."
Сборка и отправка текстового сообщения:
// Send text message
const textMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "text",
content: "Thanks for your feedback.\n From Notification Messaging SDK"
}
});
// Process result
if (textMessageResult.status === "202") {
textMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Отправка сообщения мультимедиа изображения пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения мультимедиа (изображения, видео, аудио или документ) пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- URL-адрес носителя изображений.
Внимание
Начиная с версии ПАКЕТА SDK 2.0.0, MediaNotificationContent
не рекомендуется использовать для образов. Мы рекомендуем использовать ImageNotificationContent
для отправки изображений. Изучите другие классы, относящиеся к содержимому, для других типов мультимедиа, таких как DocumentNotificationContent
, VideoNotificationContent
и AudioNotificationContent
.
Чтобы отправить сообщение изображения, укажите URL-адрес изображения. Например:
const url = "https://example.com/image.jpg";
Сборка и отправка сообщения мультимедиа:
// Send image message
const mediaMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "image",
mediaUri: url
}
});
// Process result
if (mediaMessageResult.status === "202") {
mediaMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Отправка видеомедийного сообщения пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения мультимедиа (изображения, видео, аудио или документ) пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- URL-адрес видео.
Чтобы отправить видеосообщение, укажите URL-адрес видео. Например,
const url = "https://example.com/video.mp4";
Сборка и отправка видеосообщения:
// Send video message
const mediaMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "video",
mediaUri: url
}
});
// Process result
if (mediaMessageResult.status === "202") {
mediaMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Отправка сообщения аудиомедийного носителя пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения мультимедиа (изображения, видео, аудио или документ) пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- URL-адрес аудиомедийного носителя.
Чтобы отправить звуковое сообщение, укажите URL-адрес звукового файла. Например:
const url = "https://example.com/audio.mp3";
Сборка и отправка звукового сообщения:
// Send audio message
const mediaMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "audio",
mediaUri: url
}
});
// Process result
if (mediaMessageResult.status === "202") {
mediaMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Отправка сообщения мультимедиа документа пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения мультимедиа (изображения, видео, аудио или документ) пользователям WhatsApp. Чтобы отправить внедренное сообщение мультимедиа, вам потребуется:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- URL-адрес носителя document.
Чтобы отправить сообщение о документе, укажите URL-адрес документа. Например,
const url = "https://example.com/document.pdf";
Сборка и отправка сообщения документа:
// Send document message
const mediaMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "document",
mediaUri: url
}
});
// Process result
if (mediaMessageResult.status === "202") {
mediaMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Выполнение кода
Используйте команду узла, чтобы запустить код, добавленный в send-messages.js
файл.
node ./send-messages.js
Полный пример кода
Найдите завершенный код в примерах клиентской библиотеки служб сообщений GitHub для JavaScript.
Необходимые компоненты
Учетная запись WhatsApp Business, зарегистрированная в ресурсе Службы коммуникации Azure.
Активный номер телефона WhatsApp для получения сообщений.
Python 3.7+ для операционной системы.
Установка
Создание приложения Python
В окне терминала или консоли создайте новую папку для приложения и откройте ее.
mkdir messages-quickstart && cd messages-quickstart
Установка пакета
Используйте клиентную библиотеку сообщений коммуникации Azure для Python 1.1.0 или более поздней версии.
В командной строке консоли выполните следующую команду:
pip install azure-communication-messages
Для InteractiveMessagesages, Реакции и наклейки используйте следующую бета-версию :
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()
Объектная модель
Следующие классы и интерфейсы обрабатывают некоторые основные функции пакета SDK для сообщений Службы коммуникации Azure для Python.
Имя класса | Описание |
---|---|
NotificationMessagesClient |
Подключается к ресурсу Службы коммуникации Azure. Он отправляет сообщения. |
MessageTemplate |
Определяет используемый шаблон и содержимое свойств шаблона для сообщения. |
TemplateNotificationContent |
Определяет "кто" и "что" сообщения шаблона, которое вы собираетесь отправить. |
TextNotificationContent |
Определяет "кто" и "что" текстового сообщения, которое вы собираетесь отправить. |
ImageNotificationContent |
Определяет "кто" и "что" сообщения мультимедиа изображения, которое вы собираетесь отправить. |
DocumentNotificationContent |
Определяет "кто" и "что" сообщения мультимедиа документа, которое вы планируете отправить. |
VideoNotificationContent |
Определяет "кто" и "что" сообщения видеомедийного сообщения, которое вы планируете отправить. |
AudioNotificationContent |
Определяет "кто" и "что" сообщения аудиомедиаля, которое вы собираетесь отправить. |
Примечание.
Дополнительные сведения см. в пакете справочных сообщений Azure SDK для Python.
Распространенные конфигурации
Выполните следующие действия, чтобы добавить необходимые фрагменты кода в messages-quickstart.py
программу Python.
- Проверка подлинности клиента.
- Задайте идентификатор регистрации канала.
- Задайте список получателей.
- Начните отправлять сообщения между бизнесом и пользователем WhatsApp.
аутентификация клиента;
Сообщения, отправляемые, используют NotificationMessagesClient. NotificationMessagesClient проходит проверку подлинности с помощью строки подключения, полученной из ресурса Служб коммуникации Azure на портале Azure. F
Дополнительные сведения о строка подключения см. в разделе access-your-connection-strings-and-service-endpoints.
Получите строка подключения ресурса коммуникации 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)
Установка идентификатора регистрации канала
Вы создали GUID идентификатора регистрации канала во время регистрации канала. Найдите его на портале на вкладке "Каналы" ресурса Службы коммуникации Azure.
Назначьте его переменной, называемой channelRegistrationId.
channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")
Настройка списка получателей
Необходимо указать активный номер телефона, связанный с учетной записью WhatsApp. Эта учетная запись WhatsApp получает шаблоны, текстовые и мультимедийные сообщения, упомянутые в этой статье.
В этом примере можно использовать личный номер телефона.
Номер телефона получателя не может быть бизнес-номером телефона (идентификатор отправителя), связанным с регистрацией канала WhatsApp. Идентификатор отправителя отображается как отправитель текстовых сообщений и сообщений мультимедиа, отправленных получателю.
Номер телефона должен содержать код страны. Дополнительные сведения о форматировании номеров телефонов см. в документации WhatsApp для форматов номеров телефонов.
Примечание.
В настоящее время в списке получателей поддерживается только один номер телефона.
Задайте список получателей следующим образом:
phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")
Пример использования.
# Example only
to=[self.phone_number],
Начало отправки сообщений между бизнесом и пользователем WhatsApp
Беседы между учетной записью WhatsApp Business и пользователем WhatsApp можно инициировать одним из двух способов:
- Бизнес отправляет сообщение шаблона пользователю WhatsApp.
- Пользователь WhatsApp отправляет любое сообщение в бизнес-номер.
Бизнес не может инициировать интерактивную беседу. Бизнес может отправлять интерактивное сообщение только после получения сообщения от пользователя. Бизнес может отправлять интерактивные сообщения пользователю только во время активной беседы. После истечения срока действия окна беседы через 24 часа пользователь может перезапустить интерактивную беседу. Дополнительные сведения о беседах см. в определении в WhatsApp Business Platform.
Чтобы инициировать интерактивную беседу из личной учетной записи WhatsApp, отправьте сообщение в свой бизнес-номер (идентификатор отправителя).
Примеры кода
Выполните следующие действия, чтобы добавить необходимые фрагменты кода в программу python messages-quickstart.py.
- Отправьте текстовое сообщение пользователю WhatsApp.
- Отправьте сообщение мультимедиа изображения пользователю WhatsApp.
- Отправьте сообщение мультимедиа документа пользователю WhatsApp.
- Отправьте звуковое сообщение мультимедиа пользователю WhatsApp.
- Отправьте видеомедийное сообщение пользователю WhatsApp.
Отправка текстового сообщения пользователю WhatsApp
Пакет SDK для сообщений позволяет Contoso отправлять текстовые сообщения WhatsApp при инициировании пользователем WhatsApp. Для отправки текстовых сообщений:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- Текст сообщения или текст, отправляемый.
Внимание
Чтобы отправить текстовое сообщение пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp Business. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
В этом примере мы отвечаем пользователю WhatsApp с текстом "Thanks for your feedback.\n From Notification Messaging SDK."
def send_text_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( TextNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
text_options = TextNotificationContent (
channel_registration_id=self.channelRegistrationId,
to= [self.phone_number],
content="Thanks for your feedback.\n From Notification Messaging SDK",
)
# calling send() with whatsapp message details
message_responses = messaging_client.send(text_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Text Message with message id {} was successfully sent to {}."
.format(response.message_id, response.to))
else:
print("Message failed to send")
Чтобы запустить, обновите send_text_message()
основной метод:
#Calling send_text_message()
messages.send_text_message()
Отправка сообщения мультимедиа изображения пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения WhatsApp пользователям WhatsApp. Чтобы отправить внедренные сообщения изображения, выполните приведенные ниже действия.
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- MediaUri изображения.
Внимание
Чтобы отправить текстовое сообщение пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp Business. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Пример, используемый media_uri
при отправке сообщения WhatsApp мультимедиа.
input_media_uri: str = "https://aka.ms/acsicon1"
def send_image_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( ImageNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "https://aka.ms/acsicon1"
image_message_options = ImageNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(image_message_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Image containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
Чтобы запустить, обновите send_text_message()
основной метод:
# Calling send_image_message()
messages.send_image_message()
Отправка сообщения мультимедиа документа пользователю WhatsApp
Пакет SDK для сообщений позволяет Contoso отправлять сообщения WhatsApp пользователям WhatsApp. Для отправки внедренных документов:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- MediaUri документа.
Внимание
Чтобы отправить сообщение документа пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp для бизнеса. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Пример, используемый media_uri
при отправке сообщения WhatsApp мультимедиа.
input_media_uri: str = "##DocumentLinkPlaceholder##"
def send_document_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( DocumentNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##DocumentLinkPlaceholder##"
documents_options = DocumentNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
caption="Hello World via Advanced Messaging SDK.This is document message",
file_name="Product roadmap timeline.pptx",
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(documents_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Document containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
Чтобы запустить, обновите send_text_message()
основной метод:
# Calling send_image_message()
messages.send_image_message()
Отправка сообщения аудиомедийного носителя пользователю WhatsApp
Пакет SDK сообщений позволяет Contoso отправлять сообщения WhatsApp пользователям WhatsApp. Чтобы отправить внедренные звуковые сообщения, выполните приведенные действия.
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- MediaUri звука.
Внимание
Чтобы отправить звуковое сообщение пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp business. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Пример, используемый media_uri
при отправке сообщения WhatsApp мультимедиа.
input_media_uri: str = "##AudioLinkPlaceholder##"
def send_audio_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( AudioNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##AudioLinkPlaceholder##"
audio_options = AudioNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(audio_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Audio containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
Чтобы запустить, обновите send_text_message()
основной метод:
# Calling send_image_message()
messages.send_image_message()
Отправка видеомедийного сообщения пользователю WhatsApp
Пакет SDK для сообщений позволяет Contoso отправлять видео WhatsApp пользователям WhatsApp. Для отправки видео внедренных сообщений:
- Идентификатор канала WhatsApp.
- Номер телефона получателя в формате E16.
- MediaUri видео.
Внимание
Чтобы отправить видеосообщение пользователю WhatsApp, пользователь WhatsApp должен сначала отправить сообщение в учетную запись WhatsApp Business. Дополнительные сведения см. в статье "Начало отправки сообщений между бизнесом и пользователем WhatsApp".
Пример, используемый media_uri
при отправке сообщения WhatsApp мультимедиа.
input_media_uri: str = "##VideoLinkPlaceholder##"
def send_video_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( VideoNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##VideoLinkPlaceholder##"
video_options = VideoNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(image_message_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Video containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
Чтобы запустить, обновите send_text_message()
основной метод:
# Calling send_image_message()
messages.send_image_message()
Выполнение кода
Чтобы запустить код, убедитесь, что находитесь в каталоге, где messages-quickstart.py
находится файл.
python messages-quickstart.py
Azure Communication Services - Advanced Messages Quickstart
WhatsApp Templated Message with message id <<GUID>> was successfully sent to <<ToRecipient>>
WhatsApp Text Message with message id <<GUID>> was successfully sent to <<ToRecipient>>
WhatsApp Image containing 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_template_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( TemplateNotificationContent , MessageTemplate )
# client creation
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_template: MessageTemplate = MessageTemplate(
name="<<TEMPLATE_NAME>>",
language="<<LANGUAGE>>")
template_options = TemplateNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
template=input_template
)
# calling send() with WhatsApp template details.
message_responses = messaging_client.send(template_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Templated Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_text_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( TextNotificationContent )
# client creation
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
text_options = TextNotificationContent (
channel_registration_id=self.channelRegistrationId,
to= [self.phone_number],
content="Hello World via ACS Advanced Messaging SDK.",
)
# calling send() with WhatsApp message details
message_responses = messaging_client.send(text_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Text Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_image_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( ImageNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "https://aka.ms/acsicon1"
image_message_options = ImageNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(image_message_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Image containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_document_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( DocumentNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##DocumentLinkPlaceholder##"
documents_options = DocumentNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
caption="Hello World via Advanced Messaging SDK.This is document message",
file_name="Product roadmap timeline.pptx",
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(documents_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Document containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_audio_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( AudioNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##AudioLinkPlaceholder##"
audio_options = AudioNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(audio_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Audio containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
def send_video_message(self):
from azure.communication.messages import NotificationMessagesClient
from azure.communication.messages.models import ( VideoNotificationContent)
# Create NotificationMessagesClient Client
messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
input_media_uri: str = "##VideoLinkPlaceholder##"
video_options = VideoNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
media_uri=input_media_uri,
)
# calling send() with whatsapp image message
message_responses = messaging_client.send(image_message_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Video containing Message with message id {} was successfully sent to {}"
.format(response.message_id, response.to))
else:
print("Message failed to send")
if __name__ == '__main__':
messages = MessagesQuickstart()
messages.send_template_message()
messages.send_text_message()
messages.send_image_message()
messages.send_document_message()
messages.send_audio_message()
messages.send_video_message()
Другие примеры
Вы можете просмотреть и скачать другие примеры кодов на сайте GitHub для пакета SDK для сообщений Python.