Enviar mensagens de texto e mídia do WhatsApp usando a Mensagem Avançada
Os Serviços de Comunicação do Azure permitem que você envie e receba mensagens do WhatsApp. Este artigo descreve como integrar seu aplicativo ao SDK de Mensagens Avançadas de Comunicação do Azure para começar a enviar e receber mensagens do WhatsApp. A conclusão deste artigo gera um pequeno custo de alguns centavos de USD ou menos em sua conta do Azure.
Pré-requisitos
- Conta Comercial do WhatsApp registrada com o recurso dos Serviços de Comunicação do Azure.
- Número de telefone ativo do WhatsApp para receber mensagens.
- Ambiente de desenvolvimento .NET, como Visual Studio, Visual Studio Code ou CLI do .NET.
Configurar o ambiente
Criar o projeto .NET
Para criar seu projeto, siga o tutorial em Criar um aplicativo de console .NET usando o Visual Studio.
Para compilar seu código, pressione Ctrl+F7.
Instalar o pacote
Instale o pacote NuGet Azure.Communication.Messages em seu projeto em C#.
- Abra o Gerenciador de Pacotes NuGet em
Project
>Manage NuGet Packages...
. - Pesquise o pacote
Azure.Communication.Messages
. - Instale a versão mais recente.
Configurar o framework de aplicativos
Abra o arquivo Program.cs
em um editor de texto.
Substitua o conteúdo de Program.cs
pelo seguinte código:
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
}
}
}
Para usar os recursos da Mensagem Avançada, adicione uma diretiva using
para incluir o namespace Azure.Communication.Messages
.
using Azure.Communication.Messages;
Modelo de objeto
As classes e interfaces a seguir lidam com alguns dos principais recursos do SDK de Mensagens Avançadas dos Serviços de Comunicação do Azure para .NET.
Nome da Classe | Descrição |
---|---|
NotificationMessagesClient |
Conecta-se ao seu recurso dos Serviços de Comunicação do Azure. Ele envia as mensagens. |
MessageTemplate |
Define o modelo que você usa e o conteúdo das propriedades do modelo para sua mensagem. |
TemplateNotificationContent |
Define o "quem" e o "o quê" da mensagem de modelo que você pretende enviar. |
TextNotificationContent |
Define o "quem" e o "o quê" da mensagem de texto que você pretende enviar. |
ImageNotificationContent |
Define o "quem" e o "o quê" da mensagem de mídia de imagem que você pretende enviar. |
DocumentNotificationContent |
Define o "quem" e o "o quê" da mensagem de mídia do documento que você pretende enviar. |
VideoNotificationContent |
Define o "quem" e o "o quê" da mensagem de mídia de vídeo que você pretende enviar. |
AudioNotificationContent |
Define o "quem" e o "o quê" da mensagem de mídia de áudio que você pretende enviar. |
Observação
Para obter mais informações, confira a referência do SDK do Azure para .NET Namespace Azure.Communication.Messages.
Configuração comum
Siga essas etapas para adicionar os trechos de código necessários ao programa python messages-quickstart.py.
- Autenticar o cliente.
- Definir a ID de registro do canal.
- Definir lista de destinatários.
- Comece a enviar mensagens entre uma empresa e um usuário do WhatsApp.
Autenticar o cliente
O SDK de Mensagens usa o NotificationMessagesClient
para enviar mensagens. O método NotificationMessagesClient
autentica usando sua cadeia de conexão adquirida do recurso dos Serviços de Comunicação do Azure no portal do Azure. Para obter mais informações sobre cadeias de conexão, confira access-your-connection-strings-and-service-endpoints.
Para simplificar, este início rápido usa uma cadeia de conexão para autenticar. Em ambientes de produção, é recomendável usar entidades de serviço.
Obtenha da cadeia de conexão no recurso Serviços de Comunicação do Azure no portal do Azure. À esquerda, navegue até a guia Keys
. Copie o campo Connection string
da chave primária. A cadeia de conexão está no formato endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Defina a variável de ambiente COMMUNICATION_SERVICES_CONNECTION_STRING
para o valor da cadeia de conexão.
Abra uma janela do console e insira o seguinte comando:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Depois de adicionar a variável de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisarão ler a variável de ambiente, incluindo a janela do console. Por exemplo, se estiver usando o Visual Studio como seu editor, reinicie-o antes de executar o exemplo.
Para obter mais informações sobre como definir uma variável de ambiente para seu sistema, siga as etapas em Armazenar sua cadeia de conexão em uma variável de ambiente.
Para criar uma instância de NotificationMessagesClient
, adicione o seguinte código ao método Main
:
// Retrieve connection string from environment variable
string connectionString =
Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
// Instantiate the client
var notificationMessagesClient = new NotificationMessagesClient(connectionString);
Definir a ID de registro do canal
Você criou o GUID da ID de registro do canal durante o registro do canal. Encontre-o no portal na guia Canais do seu recurso dos Serviços de Comunicação do Azure.
Atribua a uma variável chamada channelRegistrationId.
var channelRegistrationId = new Guid("<your channel registration ID GUID>");
Definir a lista de destinatários
Você precisa fornecer um número de telefone ativo associado a uma conta do WhatsApp. Essa conta do WhatsApp recebe o modelo, o texto e as mensagens de mídia enviadas neste início rápido.
Para esse exemplo, você pode usar seu número de telefone pessoal.
O número de telefone do destinatário não pode ser o número de telefone comercial (ID do remetente) associado ao registro do canal do WhatsApp. A ID do remetente é exibida como o remetente das mensagens de texto e mídia enviadas ao destinatário.
O número de telefone deve incluir o código do país/região. Para obter mais informações sobre a formatação de números de telefone, confira a documentação do WhatsApp para Formatos de Números de Telefone.
Observação
Atualmente, há suporte para apenas um número de telefone na lista de destinatários.
Crie a lista de destinatários da seguinte maneira:
var recipientList = new List<string> { "<to WhatsApp phone number>" };
Exemplo:
// Example only
var recipientList = new List<string> { "+14255550199" };
Começar a enviar mensagens entre uma empresa e um usuário do WhatsApp
As conversas entre uma conta do WhatsApp Business e um usuário do WhatsApp podem ser iniciadas de duas maneiras:
- A empresa envia uma mensagem de modelo para o usuário do WhatsApp.
- O usuário do WhatsApp envia qualquer mensagem para o número comercial.
Uma empresa não pode iniciar uma conversa interativa. Uma empresa só pode enviar uma mensagem interativa após receber uma mensagem do usuário. A empresa só pode enviar mensagens interativas ao usuário durante a conversa ativa. Após o término da janela de conversa de 24 horas, somente o usuário poderá reiniciar a conversa interativa. Para mais informações sobre conversas, confira a definição na Plataforma do WhatsApp Business.
Para iniciar uma conversa interativa na sua conta pessoal do WhatsApp, envie uma mensagem para o seu número comercial (ID do remetente).
Exemplos de código
Siga essas etapas para adicionar os trechos de código necessários à função Main do seu arquivo Program.cs
.
- Envie uma mensagem de texto para um usuário do WhatsApp.
- Envie uma mensagem de mídia de imagem para um usuário do WhatsApp.
- Envie uma mensagem de mídia de documento para um usuário do WhatsApp.
- Envie uma mensagem de mídia de áudio para um usuário do WhatsApp.
- Envie uma mensagem de mídia de vídeo para um usuário do WhatsApp.
Importante
Para enviar uma mensagem de texto ou de mídia para um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Enviar uma mensagem de texto para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de texto do WhatsApp, que iniciaram os usuários do WhatsApp. Para enviar uma mensagem de texto, você precisa de:
- NotificationMessagesClient autenticado
- ID do canal do WhatsApp
- Número de telefone do destinatário no formato E16
- Corpo/texto da mensagem a ser enviado
Nesse exemplo, respondemos ao usuário do WhatsApp com o texto: "Thanks for your feedback.\n From Notification Messaging SDK."
Monte e envie a mensagem de texto:
// 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);
Enviar uma mensagem de mídia de imagem para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia do WhatsApp para usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- NotificationMessagesClient autenticado.
- ID do canal do WhatsApp.
- Número de telefone do destinatário no formato E16.
- URI da mídia de imagem.
Importante
A partir do SDK versão 1.1.0, MediaNotificationContent
está sendo preterido para imagens. Recomendamos que você use ImageNotificationContent
ao enviar imagens. Explore outras classes específicas de conteúdo para outros tipos de mídia, como DocumentNotificationContent
, VideoNotificationContent
e AudioNotificationContent
.
Monte a mensagem de imagem:
var imageLink = new Uri("https://example.com/image.jpg");
var imageNotificationContent = new ImageNotificationContent(channelRegistrationId, recipientList, imageLink)
{
Caption = "Check out this image."
};
Envie a mensagem de imagem:
var imageResponse = await notificationMessagesClient.SendAsync(imageNotificationContent);
Enviar uma mensagem de mídia de documento para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia do WhatsApp para usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- NotificationMessagesClient autenticado.
- ID do canal do WhatsApp.
- Número de telefone do destinatário no formato E16.
- URI da mídia do documento.
Monte o conteúdo de documento:
var documentLink = new Uri("https://example.com/document.pdf");
var documentNotificationContent = new DocumentNotificationContent(channelRegistrationId, recipientList, documentLink)
{
Caption = "Check out this document.",
FileName = "document.pdf"
};
Envie a mensagem de documento:
var documentResponse = await notificationMessagesClient.SendAsync(documentNotificationContent);
Enviar uma mensagem de mídia de vídeo para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia do WhatsApp para usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- NotificationMessagesClient autenticado.
- ID do canal do WhatsApp.
- Número de telefone do destinatário no formato E16.
- URI da mídia de vídeo.
Monte a mensagem de vídeo:
var videoLink = new Uri("https://example.com/video.mp4");
var videoNotificationContent = new VideoNotificationContent(channelRegistrationId, recipientList, videoLink)
{
Caption = "Check out this video."
};
Envie a mensagem de vídeo:
var videoResponse = await notificationMessagesClient.SendAsync(videoNotificationContent);
Enviar uma mensagem de mídia de áudio para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia do WhatsApp para usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- NotificationMessagesClient autenticado.
- ID do canal do WhatsApp.
- Número de telefone do destinatário no formato E16.
- URI da mídia de áudio.
Monte a mensagem de áudio:
var audioLink = new Uri("https://example.com/audio.mp3");
var audioNotificationContent = new AudioNotificationContent(channelRegistrationId, recipientList, audioLink);
Envie a mensagem de áudio:
var audioResponse = await notificationMessagesClient.SendAsync(audioNotificationContent);
Executar o código
Crie e execute o programa.
Para enviar uma mensagem de texto ou mídia para um usuário do WhatsApp, deve haver uma conversa ativa entre a conta do WhatsApp Business e o usuário do WhatsApp.
Se você não tiver uma conversa ativa, para este exemplo, adicione um tempo de espera entre o envio da mensagem de modelo e o envio da mensagem de texto. Esse atraso adicional oferece tempo suficiente para responder à empresa na conta do WhatsApp do usuário. Para referência, o exemplo completo em Exemplo de código solicita entrada manual do usuário antes de enviar a próxima mensagem.
Se tiver êxito, você receberá três mensagens na conta do WhatsApp do usuário.
- Para compilar seu código, pressione Ctrl+F7.
- Para executar o programa sem depuração, pressione Ctrl+F5.
Exemplo de código completo
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");
}
}
}
Pré-requisitos
- Conta Comercial do WhatsApp registrada com o recurso dos Serviços de Comunicação do Azure.
- Número de telefone ativo do WhatsApp para receber mensagens.
- JDK (Java Development Kit) versão 8 ou posterior.
- Apache Maven.
Configurar o ambiente
Para configurar um ambiente para enviar mensagens, conclua as etapas nas seções a seguir.
Criar um aplicativo Java
Abra um terminal ou janela de comando e navegue até o diretório onde deseja criar seu aplicativo Java. Execute o seguinte comando para gerar o projeto Java a partir do modelo maven-archetype-quickstart
.
mvn archetype:generate -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart" -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeVersion="1.4" -DinteractiveMode="false"
A meta generate
cria um diretório com o mesmo nome do valor artifactId
. Nesse diretório, o diretório src/main/java
contém o código-fonte do projeto, o diretório src/test/java
contém a fonte do teste e o arquivo pom.xml
é o POM (Modelo de Objeto do Projeto) do projeto.
Instalar o pacote
Abra o arquivo pom.xml
no seu editor de texto. Adicione o seguinte elemento de dependência ao grupo de dependências.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-messages</artifactId>
</dependency>
Configurar o framework de aplicativos
Abra /src/main/java/com/communication/quickstart/App.java
em um editor de texto, adicione as diretivas de importação e remova a instrução 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.
}
}
Exemplos de código
Siga estas etapas para adicionar snippets de código necessários à função principal do arquivo App.java
.
- Comece a enviar mensagens entre uma empresa e um usuário do WhatsApp.
- Autenticar o cliente.
- Definir a ID de registro do canal.
- Definir lista de destinatários.
- Enviar uma mensagem de texto para um usuário do WhatsApp
- Enviar uma mensagem de mídia de imagem para um usuário do WhatsApp
- Enviar uma mensagem de mídia de documento para um usuário do WhatsApp
- Enviar uma mensagem de mídia de áudio para um usuário do WhatsApp
- Enviar uma mensagem de mídia de vídeo para um usuário do WhatsApp
Começar a enviar mensagens entre uma empresa e um usuário do WhatsApp
As conversas entre uma conta do WhatsApp Business e um usuário do WhatsApp podem ser iniciadas de duas maneiras:
- A empresa envia uma mensagem de modelo para o usuário do WhatsApp.
- O usuário do WhatsApp envia qualquer mensagem para o número comercial.
Independentemente de como a conversa foi iniciada, uma empresa só pode enviar mensagens de modelo até que o usuário envie uma mensagem para a empresa. Somente depois que o usuário envia uma mensagem para a empresa, a empresa tem permissão para enviar mensagens de texto ou mídia para o usuário durante a conversa ativa. Depois que a janela de conversa de 24 horas expirar, a conversa deverá ser reiniciada. Para saber mais sobre conversas, consulte a definição na Plataforma WhatsApp Business.
Autenticar o cliente
Há algumas opções diferentes disponíveis para autenticar um cliente de mensagem:
Para autenticar um cliente, crie uma instância de NotificationMessagesClient
ou MessageTemplateClient
com a cadeia de conexão. Também é possível criar uma instância do cliente com qualquer cliente HTTP personalizado que implemente a interface com.azure.core.http.HttpClient
.
Para simplificar, este início rápido usa uma cadeia de conexão para autenticar. Em ambientes de produção, é recomendável usar entidades de serviço.
Obtenha da cadeia de conexão no recurso Serviços de Comunicação do Azure no portal do Azure. À esquerda, navegue até a guia Keys
. Copie o campo Connection string
para o Primary key
. A cadeia de conexão está no formato endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Defina a variável de ambiente COMMUNICATION_SERVICES_CONNECTION_STRING
para o valor da cadeia de conexão.
Abra uma janela do console e insira o seguinte comando:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Para obter mais informações sobre como definir uma variável de ambiente para seu sistema, siga as etapas em Armazenar sua cadeia de conexão em uma variável de ambiente.
Para criar uma instância de NotificationMessagesClient, adicione o seguinte código ao método 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();
Definir a ID de registro do canal
O GUID da ID de Registro de Canal foi criado durante o registro do canal. Você pode pesquisá-lo no portal na guia Canais do recurso Serviços de Comunicação do Azure.
Atribua a uma variável chamada channelRegistrationId.
String channelRegistrationId = "<your channel registration id GUID>";
Definir a lista de destinatários
Você precisa fornecer um número de telefone real que tenha uma conta do WhatsApp associada a ele. Essa conta do WhatsApp recebe as mensagens de texto e mídia enviadas neste início rápido. Para este início rápido, esse número de telefone pode ser seu número de telefone pessoal.
O número de telefone do destinatário não pode ser o número de telefone comercial (ID do remetente) associado ao registro do canal do WhatsApp. A ID do remetente é exibida como o remetente das mensagens de texto e mídia enviadas ao destinatário.
O número de telefone deve incluir o código do país. Para obter mais informações sobre a formatação do número de telefone, consulte a documentação do WhatsApp para Formatos de número de telefone.
Observação
Atualmente, há suporte para apenas um número de telefone na lista de destinatários.
Crie a lista de destinatários da seguinte maneira:
List<String> recipientList = new ArrayList<>();
recipientList.add("<to WhatsApp phone number>");
Exemplo:
// Example only
List<String> recipientList = new ArrayList<>();
recipientList.add("+14255550199");
Enviar uma mensagem de texto para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens WhatsApp de texto, que usuários do WhatsApp iniciaram. Para enviar mensagens de texto abaixo, os detalhes são necessários:
- ID do Canal do WhatsApp
- Número de Telefone do Destinatário no formato E16
- Corpo/texto da mensagem a ser enviado
Nesse exemplo, respondemos ao usuário do WhatsApp com o texto "Thanks for your feedback.\n From Notification Messaging SDK."
Importante
Para enviar uma mensagem de texto a um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Monte e envie a mensagem de texto:
// 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());
}
Enviar uma mensagem de mídia de imagem para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia (imagem, vídeo, áudio ou documento) aos usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- ID do Canal do WhatsApp
- Número de Telefone do Destinatário no formato E16
- URL da mídia de imagem
Importante
A partir do SDK versão 1.1.0, MediaNotificationContent
está sendo preterido para imagens. Recomendamos que você use ImageNotificationContent
para enviar imagens. Explore outras classes específicas de conteúdo para outros tipos de mídia, como DocumentNotificationContent
, VideoNotificationContent
e AudioNotificationContent
.
Importante
Para enviar uma mensagem de imagem para um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Monte e envie a mensagem de imagem:
// 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());
}
Enviar uma mensagem de mídia de vídeo para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia (imagem, vídeo, áudio ou documento) aos usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- URL da mídia de vídeo.
Importante
Para enviar uma mensagem de vídeo a um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Monte e envie a mensagem de vídeo:
// 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());
}
Enviar uma mensagem de mídia de áudio para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia (imagem, vídeo, áudio ou documento) aos usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- URL da mídia de áudio.
Importante
Para enviar uma mensagem de áudio para um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Monte e envie a mensagem de áudio:
// 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());
}
Enviar uma mensagem de mídia de documento para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia (imagem, vídeo, áudio ou documento) aos usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- URL da mídia de documento.
Importante
Para enviar uma mensagem de documento a um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Monte e envie a mensagem de documento:
// 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());
}
Executar o código
Abra o diretório que contém o arquivo
pom.xml
e compile o projeto usando o comandomvn
.mvn compile
Execute o aplicativo executando o comando
mvn
a seguir.mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
Exemplo de código completo
Encontre o código finalizado para este guia de início rápido no GitHub.
Pré-requisitos
- Conta Comercial do WhatsApp registrada com o recurso dos Serviços de Comunicação do Azure.
- Número de telefone ativo do WhatsApp para receber mensagens.
- Node.js, versões Active LTS e Maintenance LTS (recomendamos 8.11.1 e 10.14.1).
-
Node.js Versões Active LTS e Maintenance LTS (8.11.1 e 10.14.1 são recomendadas)
- Em um terminal ou janela de comando, execute
node --version
para verificar se o Node.js está instalado
- Em um terminal ou janela de comando, execute
Configurando
Criar um novo aplicativo do Node.js
Crie um novo diretório para seu aplicativo e abra-o em um terminal ou janela de comando.
Execute o comando a seguir.
mkdir advance-messages-quickstart && cd advance-messages-quickstart
Execute o seguinte comando para criar um arquivo
package.json
com as configurações padrão.npm init -y
Use um editor de texto para criar um arquivo chamado
send-messages.js
no diretório raiz do projeto.Adicione o seguinte trecho de código ao arquivo
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); });
Preencha a seção a seguir para adicionar seu código-fonte para esse exemplo ao arquivo send-messages.js
que você criou.
Instalar o pacote
Use o comando npm install
para instalar o SDK de Mensagens Avançadas dos Serviços de Comunicação do Azure para JavaScript.
npm install @azure-rest/communication-messages --save
A opção --save
lista a biblioteca como uma dependência no arquivo package.json.
Exemplos de código
Siga estas etapas para adicionar snippets de código necessários à função principal do arquivo send-messages.js
.
- Comece a enviar mensagens entre uma empresa e um usuário do WhatsApp.
- Autenticar o cliente.
- Definir a ID de registro do canal.
- Definir lista de destinatários.
- Envie uma mensagem de texto para um usuário do WhatsApp.
- Envie uma mensagem de mídia de imagem para um usuário do WhatsApp.
- Envie uma mensagem de mídia de documento para um usuário do WhatsApp.
- Envie uma mensagem de mídia de áudio para um usuário do WhatsApp.
- Envie uma mensagem de mídia de vídeo para um usuário do WhatsApp.
Começar a enviar mensagens entre uma empresa e um usuário do WhatsApp
As conversas entre uma conta do WhatsApp Business e um usuário do WhatsApp podem ser iniciadas de duas maneiras:
- A empresa envia uma mensagem de modelo para o usuário do WhatsApp.
- O usuário do WhatsApp envia qualquer mensagem para o número comercial.
Independentemente de como a conversa foi iniciada, uma empresa só pode enviar mensagens de modelo até que o usuário envie uma mensagem para a empresa. Somente depois que o usuário envia uma mensagem para a empresa, a empresa tem permissão para enviar mensagens de texto ou mídia para o usuário durante a conversa ativa. Depois que a janela de conversa de 24 horas expirar, a conversa deverá ser reiniciada. Para saber mais sobre conversas, consulte a definição na Plataforma WhatsApp Business.
Autenticar o cliente
O código abaixo recupera a cadeia de conexão do recurso de uma variável de ambiente chamada COMMUNICATION_SERVICES_CONNECTION_STRING
usando o pacote dotenv.
Para simplificar, este início rápido usa uma cadeia de conexão para autenticar. Em ambientes de produção, é recomendável usar entidades de serviço.
Obtenha da cadeia de conexão no recurso Serviços de Comunicação do Azure no portal do Azure. À esquerda, navegue até a guia Keys
. Copie o campo Connection string
para o Primary key
. A cadeia de conexão está no formato endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Defina a variável de ambiente COMMUNICATION_SERVICES_CONNECTION_STRING
para o valor da cadeia de conexão.
Abra uma janela do console e insira o seguinte comando:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Para obter mais informações sobre como definir uma variável de ambiente para seu sistema, siga as etapas em Armazenar sua cadeia de conexão em uma variável de ambiente.
Para instanciar um NotificationClient, adicione o seguinte código ao método 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);
Definir a ID de registro do canal
O GUID da ID de Registro de Canal foi criado durante o registro do canal. Você pode pesquisá-lo no portal na guia Canais do recurso Serviços de Comunicação do Azure.
Atribua a uma variável chamada channelRegistrationId.
const channelRegistrationId = "<your channel registration id GUID>";
Definir a lista de destinatários
Você precisa fornecer um número de telefone real que tenha uma conta do WhatsApp associada a ele. Essa conta do WhatsApp recebe o modelo, o texto e as mensagens de mídia enviadas neste início rápido. Para este início rápido, esse número de telefone pode ser seu número de telefone pessoal.
O número de telefone do destinatário não pode ser o número de telefone comercial (ID do remetente) associado ao registro do canal do WhatsApp. A ID do remetente é exibida como o remetente das mensagens de texto e mídia enviadas ao destinatário.
O número de telefone deve incluir o código do país. Para obter mais informações sobre a formatação do número de telefone, consulte a documentação do WhatsApp para Formatos de número de telefone.
Observação
Atualmente, há suporte para apenas um número de telefone na lista de destinatários.
Crie a lista de destinatários da seguinte maneira:
const recipientList = ["<to WhatsApp phone number>"];
Exemplo:
// Example only
const recipientList = ["+14255550199"];
Importante
Para enviar uma mensagem a um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Enviar uma mensagem de texto para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de texto do WhatsApp, quando iniciadas por usuários do WhatsApp. Para enviar mensagens de texto:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- Corpo/texto da mensagem a ser enviado.
Nesse exemplo, respondemos ao usuário do WhatsApp com o texto "Thanks for your feedback.\n From Notification Messaging SDK."
Monte e envie a mensagem de texto:
// 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");
}
Enviar uma mensagem de mídia de imagem para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia (imagem, vídeo, áudio ou documento) aos usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- URL da mídia de imagem.
Importante
A partir do SDK versão 2.0.0, MediaNotificationContent
está sendo preterido para imagens. Recomendamos que você use ImageNotificationContent
para enviar imagens. Explore outras classes específicas de conteúdo para outros tipos de mídia, como DocumentNotificationContent
, VideoNotificationContent
e AudioNotificationContent
.
Para enviar uma mensagem de imagem, forneça uma URL para uma imagem. Por exemplo:
const url = "https://example.com/image.jpg";
Monte e envie a mensagem de mídia:
// 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");
}
Enviar uma mensagem de mídia de vídeo para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia (imagem, vídeo, áudio ou documento) aos usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
Para enviar uma mensagem de vídeo, forneça uma URL para um vídeo. Por exemplo,
const url = "https://example.com/video.mp4";
Monte e envie a mensagem de vídeo:
// 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");
}
Enviar uma mensagem de mídia de áudio para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia (imagem, vídeo, áudio ou documento) aos usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- URL da mídia de áudio.
Para enviar uma mensagem de áudio, forneça uma URL para um arquivo de áudio. Por exemplo:
const url = "https://example.com/audio.mp3";
Monte e envie a mensagem de áudio:
// 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");
}
Enviar uma mensagem de mídia de documento para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de mídia (imagem, vídeo, áudio ou documento) aos usuários do WhatsApp. Para enviar uma mensagem de mídia incorporada, você precisa:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- URL da mídia de documento.
Para enviar uma mensagem de documento, forneça uma URL para um documento. Por exemplo,
const url = "https://example.com/document.pdf";
Monte e envie a mensagem de documento:
// 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");
}
Executar o código
Use o comando do nó para executar o código que você adicionou ao arquivo send-messages.js
.
node ./send-messages.js
Exemplo de código completo
Encontre o código finalizado para este guia de início rápido no GitHub.
Pré-requisitos
Conta Comercial do WhatsApp registrada com o recurso dos Serviços de Comunicação do Azure.
Número de telefone ativo do WhatsApp para receber mensagens.
Python 3.7+ para o seu sistema operacional.
Configurando
Criar um novo aplicativo Python
Em um terminal ou janela do console, crie uma nova pasta para seu aplicativo e abra-a.
mkdir messages-quickstart && cd messages-quickstart
Instalar o pacote
Use a biblioteca de clientes das Mensagens de Comunicação do Azure para Python 1.1.0 ou superior.
No prompt do console, execute o seguinte comando:
pip install azure-communication-messages
Para InteractiveMessages, Reações e Adesivos, use a versão Beta abaixo:
pip install azure-communication-messages==1.2.0b1
Configurar o framework de aplicativos
Crie um arquivo chamado messages-quickstart.py
e adicione a estrutura básica do programa.
type nul > messages-quickstart.py
Estrutura básica do programa
import os
class MessagesQuickstart(object):
print("Azure Communication Services - Advanced Messages SDK Quickstart")
if __name__ == '__main__':
messages = MessagesQuickstart()
Modelo de objeto
As classes e interfaces a seguir lidam com alguns dos principais recursos do SDK de Mensagens dos Serviços de Comunicação do Azure para Python.
Nome da Classe | Descrição |
---|---|
NotificationMessagesClient |
Conecta-se ao seu recurso dos Serviços de Comunicação do Azure. Ele envia as mensagens. |
MessageTemplate |
Define o modelo que você usa e o conteúdo das propriedades do modelo para sua mensagem. |
TemplateNotificationContent |
Define o "quem" e o "o quê" da mensagem de modelo que você pretende enviar. |
TextNotificationContent |
Define o "quem" e o "o quê" da mensagem de texto que você pretende enviar. |
ImageNotificationContent |
Define o "quem" e o "o quê" da mensagem de mídia de imagem que você pretende enviar. |
DocumentNotificationContent |
Define o "quem" e o "o quê" da mensagem de mídia do documento que você pretende enviar. |
VideoNotificationContent |
Define o "quem" e o "o quê" da mensagem de mídia de vídeo que você pretende enviar. |
AudioNotificationContent |
Define o "quem" e o "o quê" da mensagem de mídia de áudio que você pretende enviar. |
Observação
Para obter mais informações, confira a referência do SDK do Azure para Python Pacote de mensagens.
Configuração comum
Siga estas etapas para adicionar os trechos de código necessários ao programa messages-quickstart.py
python.
- Autenticar o cliente.
- Definir a ID de registro do canal.
- Definir lista de destinatários.
- Comece a enviar mensagens entre uma empresa e um usuário do WhatsApp.
Autenticar o cliente
O envio de mensagens é feito usando NotificationMessagesClient. NotificationMessagesClient é autenticado usando sua cadeia de conexão adquirida do recurso dos Serviços de Comunicação do Azure no portal do Azure. Para obter mais informações sobre cadeias de conexão, consulte access-your-connection-strings-and-service-endpoints.
Obtenha a cadeia de conexão do Recurso de Comunicação do Azure no portal do Azure, conforme mostrado na captura de tela. À esquerda, navegue até a guia Keys
. Copie o campo Connection string
da chave primária. A cadeia de conexão está no formato endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Defina a variável de ambiente COMMUNICATION_SERVICES_CONNECTION_STRING
para o valor da cadeia de conexão.
Abra uma janela do console e insira o seguinte comando:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Depois de adicionar a variável de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisarão ler a variável de ambiente, incluindo a janela do console. Por exemplo, se estiver usando o Visual Studio como seu editor, reinicie-o antes de executar o exemplo.
Para obter mais informações sobre como definir uma variável de ambiente para seu sistema, siga as etapas em Armazenar sua cadeia de conexão em uma variável de ambiente.
# 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)
Definir a ID de registro do canal
Você criou o GUID da ID de registro do canal durante o registro do canal. Encontre-o no portal na guia Canais do seu recurso dos Serviços de Comunicação do Azure.
Atribua a uma variável chamada channelRegistrationId.
channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")
Definir a lista de destinatários
Você precisa fornecer um número de telefone ativo associado a uma conta do WhatsApp. Essa conta do WhatsApp recebe o modelo, o texto e as mensagens de mídia enviadas neste início rápido.
Para esse exemplo, você pode usar seu número de telefone pessoal.
O número de telefone do destinatário não pode ser o número de telefone comercial (ID do remetente) associado ao registro do canal do WhatsApp. A ID do remetente é exibida como o remetente das mensagens de texto e mídia enviadas ao destinatário.
O número de telefone deve incluir o código do país/região. Para obter mais informações sobre a formatação de números de telefone, confira a documentação do WhatsApp para Formatos de Números de Telefone.
Observação
Atualmente, há suporte para apenas um número de telefone na lista de destinatários.
Defina a lista de destinatários da seguinte maneira:
phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")
Exemplo de uso:
# Example only
to=[self.phone_number],
Começar a enviar mensagens entre uma empresa e um usuário do WhatsApp
As conversas entre uma conta do WhatsApp Business e um usuário do WhatsApp podem ser iniciadas de duas maneiras:
- A empresa envia uma mensagem de modelo para o usuário do WhatsApp.
- O usuário do WhatsApp envia qualquer mensagem para o número comercial.
Uma empresa não pode iniciar uma conversa interativa. Uma empresa só pode enviar uma mensagem interativa após receber uma mensagem do usuário. A empresa só pode enviar mensagens interativas ao usuário durante a conversa ativa. Após o término da janela de conversa de 24 horas, somente o usuário poderá reiniciar a conversa interativa. Para mais informações sobre conversas, confira a definição na Plataforma do WhatsApp Business.
Para iniciar uma conversa interativa na sua conta pessoal do WhatsApp, envie uma mensagem para o seu número comercial (ID do remetente).
Exemplos de código
Siga essas etapas para adicionar os trechos de código necessários ao programa python messages-quickstart.py.
- Envie uma mensagem de texto para um usuário do WhatsApp.
- Envie uma mensagem de mídia de imagem para um usuário do WhatsApp.
- Envie uma mensagem de mídia de documento para um usuário do WhatsApp.
- Envie uma mensagem de mídia de áudio para um usuário do WhatsApp.
- Envie uma mensagem de mídia de vídeo para um usuário do WhatsApp.
Enviar uma mensagem de texto para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de texto do WhatsApp, quando iniciadas por um usuário do WhatsApp. Para enviar mensagens de texto:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- Corpo/texto da mensagem a ser enviado.
Importante
Para enviar uma mensagem de texto a um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Nesse exemplo, respondemos ao usuário do WhatsApp com o texto "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")
Para executar send_text_message()
, atualize o método principal:
#Calling send_text_message()
messages.send_text_message()
Enviar uma mensagem de mídia de imagem para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de WhatsApp de imagem para os usuários do WhatsApp. Para enviar mensagens com imagens incorporadas:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- MediaUri da imagem.
Importante
Para enviar uma mensagem de texto a um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Um exemplo de media_uri
usado ao enviar uma mensagem de mídia do 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")
Para executar send_text_message()
, atualize o método principal:
# Calling send_image_message()
messages.send_image_message()
Enviar uma mensagem de mídia de documento para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de documentos do WhatsApp para usuários do WhatsApp. Para enviar mensagens incorporadas de documento:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- MediaUri do documento.
Importante
Para enviar uma mensagem de documento a um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Um exemplo de media_uri
usado ao enviar uma mensagem de mídia do 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")
Para executar send_text_message()
, atualize o método principal:
# Calling send_image_message()
messages.send_image_message()
Enviar uma mensagem de mídia de áudio para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de WhatsApp de imagem para os usuários do WhatsApp. Para enviar mensagens incorporadas de áudio:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- MediaUri do áudio.
Importante
Para enviar uma mensagem de áudio para um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Um exemplo de media_uri
usado ao enviar uma mensagem de mídia do 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")
Para executar send_text_message()
, atualize o método principal:
# Calling send_image_message()
messages.send_image_message()
Enviar uma mensagem de mídia de vídeo para um usuário do WhatsApp
O SDK de Mensagens permite que a Contoso envie mensagens de vídeo do WhatsApp para os usuários do WhatsApp. Para enviar mensagens incorporadas de vídeo:
- ID do Canal do WhatsApp.
- Número de Telefone do Destinatário no formato E16.
- MediaUri do vídeo.
Importante
Para enviar uma mensagem de vídeo a um usuário do WhatsApp, o usuário do WhatsApp deve primeiro enviar uma mensagem para a conta do WhatsApp Business. Para obter mais informações, consulte Começar a enviar mensagens entre empresas e usuários do WhatsApp.
Um exemplo de media_uri
usado ao enviar uma mensagem de mídia do 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")
Para executar send_text_message()
, atualize o método principal:
# Calling send_image_message()
messages.send_image_message()
Executar o código
Para executar o código, certifique-se de estar no diretório onde seu arquivo messages-quickstart.py
está localizado.
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>>
Exemplo de código completo
Observação
Substitua todas as variáveis de espaço reservado no código de exemplo por seus valores.
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()
Outras amostras
Você pode examinar e baixar outros códigos de exemplo para o SDK de Mensagens do Python no GitHub.
Próximas etapas
Este artigo descreveu o SDK de Mensagem Avançada para WhatsApp. Para obter mais informações, consulte os seguintes artigos: