Szybki start: wysyłanie wiadomości WhatsApp przy użyciu zaawansowanych wiadomości

Usługi Azure Communication Services umożliwiają wysyłanie i odbieranie wiadomości WhatsApp. W tym przewodniku Szybki start rozpocznij integrowanie aplikacji z zestawem SDK zaawansowanych komunikatów usługi Azure Communication i zacznij wysyłać/odbierać komunikaty WhatsApp. Ukończenie tego przewodnika Szybki start wiąże się z naliczeniem niewielkiej opłaty w wysokości kilku centów USD lub mniej na koncie platformy Azure.

Wymagania wstępne

Konfigurowanie

Tworzenie projektu platformy .NET

Aby utworzyć projekt, postępuj zgodnie z samouczkiem w artykule Create a .NET console application using Visual Studio (Tworzenie aplikacji konsolowej .NET przy użyciu programu Visual Studio).

Aby skompilować kod, naciśnij klawisze Ctrl+F7.

Instalowanie pakietu

Zainstaluj pakiet NuGet Azure.Communication.Messages w projekcie języka C#.

  1. Otwórz Menedżer pakietów NuGet pod adresem Project>Manage NuGet Packages....
  2. Wyszukaj pakiet Azure.Communication.Messages.
  3. Zainstaluj najnowszą wersję.

Konfigurowanie struktury aplikacji

Otwórz plik Program.cs w edytorze tekstów.

Zastąp zawartość Program.cs następującym kodem:

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 - Send WhatsApp Messages");

            // Quickstart code goes here
        }
    }
}

Aby użyć funkcji Advanced Messaging, dodamy dyrektywę using , aby uwzględnić Azure.Communication.Messages przestrzeń nazw.

using Azure.Communication.Messages;

Model obiektów

Następujące klasy i interfejsy obsługują niektóre główne funkcje zestawu AZURE Communication Services Advance Messaging SDK dla platformy .NET.

Nazwa/nazwisko opis
NotificationMessagesClient Ta klasa łączy się z zasobem usług Azure Communication Services. Wysyła komunikaty.
MessageTemplate Ta klasa definiuje używany szablon oraz zawartość właściwości szablonu dla wiadomości.
TemplateNotificationContent Ta klasa definiuje "kto" i "co" wiadomości szablonu, którą zamierzasz wysłać.
TextNotificationContent Ta klasa definiuje "kto" i "co" wiadomości sms, którą zamierzasz wysłać.
MediaNotificationContent Ta klasa definiuje "kto" i "co" wiadomości multimedialnej, którą zamierzasz wysłać.

Przykłady kodu

Wykonaj następujące kroki, aby dodać niezbędne fragmenty kodu do funkcji Main pliku Program.cs .

Uwierzytelnianie użytkownika

Element NotificationMessagesClient służy do nawiązywania połączenia z zasobem usług Azure Communication Services.

Dla uproszczenia ten przewodnik Szybki start używa parametry połączenia do uwierzytelniania. W środowiskach produkcyjnych zalecamy używanie jednostek usługi.

Pobierz parametry połączenia z zasobu usług Azure Communication Services w witrynie Azure Portal. Po lewej Keys stronie przejdź do karty. Skopiuj Connection string pole dla klucza podstawowego. Parametry połączenia ma format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Zrzut ekranu przedstawiający zasób usług Azure Communication Services w witrynie Azure Portal z wyświetlonym polem

Ustaw zmienną środowiskową COMMUNICATION_SERVICES_CONNECTION_STRING na wartość parametry połączenia.
Otwórz okno konsoli i wprowadź następujące polecenie:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Po dodaniu zmiennej środowiskowej może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą musiały odczytać zmienną środowiskową, w tym okno konsoli. Jeśli na przykład używasz programu Visual Studio jako edytora, uruchom ponownie program Visual Studio przed uruchomieniem przykładu.

Aby uzyskać więcej informacji na temat ustawiania zmiennej środowiskowej dla systemu, wykonaj kroki opisane w temacie Przechowywanie parametry połączenia w zmiennej środowiskowej.

Aby utworzyć wystąpienie obiektu NotificationMessagesClient, dodaj następujący kod do Main metody :

// Retrieve connection string from environment variable
string connectionString = 
    Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");

// Instantiate the client
var notificationMessagesClient = new NotificationMessagesClient(connectionString);

Ustawianie identyfikatora rejestracji kanału

Identyfikator GUID identyfikatora rejestracji kanału został utworzony podczas rejestracji kanału. Możesz wyszukać go w portalu na karcie Kanały zasobu usług Azure Communication Services.

Zrzut ekranu przedstawiający zasób usług Azure Communication Services w witrynie Azure Portal z wyświetloną kartą

Przypisz ją do zmiennej o nazwie channelRegistrationId.

var channelRegistrationId = new Guid("<your channel registration ID GUID>");

Ustawianie listy adresatów

Musisz podać rzeczywisty numer telefonu, który ma skojarzone konto WhatsApp. To konto WhatsApp otrzymuje szablon, tekst i wiadomości multimedialne wysyłane w tym przewodniku Szybki start. W tym przewodniku Szybki start ten numer telefonu może być osobistym numerem telefonu.

Numer telefonu odbiorcy nie może być numerem telefonu służbowego (identyfikator nadawcy) skojarzonym z rejestracją kanału WhatsApp. Identyfikator nadawcy jest wyświetlany jako nadawca wiadomości tekstowych i multimedialnych wysyłanych do adresata.

Numer telefonu powinien zawierać kod kraju. Aby uzyskać więcej informacji na temat formatowania numeru telefonu, zobacz dokumentację WhatsApp dotyczącą formatów numerów Telefon.

Uwaga

Na liście adresatów jest obecnie obsługiwany tylko jeden numer telefonu.

Utwórz listę adresatów w następujący sposób:

var recipientList = new List<string> { "<to WhatsApp phone number>" };

Przykład:

// Example only
var recipientList = new List<string> { "+14255550199" };

Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp

Rozmowy między kontem WhatsApp Business i użytkownikiem WhatsApp można zainicjować na jeden z dwóch sposobów:

  • Firma wysyła wiadomość szablonu do użytkownika WhatsApp.
  • Użytkownik WhatsApp wysyła wszelkie wiadomości do numeru biznesowego.

Niezależnie od sposobu rozpoczęcia konwersacji firma może wysyłać tylko wiadomości szablonów, dopóki użytkownik nie wyśle wiadomości do firmy. Dopiero po wysłaniu wiadomości do firmy przez użytkownika firma może wysyłać wiadomości tekstowe lub multimedialne do użytkownika podczas aktywnej konwersacji. Po wygaśnięciu 24-godzinnego okna konwersacji należy ponownie zainicjować konwersację. Aby dowiedzieć się więcej o rozmowach, zobacz definicję na WhatsApp Business Platform.

(Opcja 1) Inicjowanie konwersacji z firmy — wysyłanie wiadomości szablonu

Zainicjuj konwersację, wysyłając wiadomość szablonu.

Najpierw utwórz element MessageTemplate przy użyciu wartości szablonu.

Uwaga

Aby sprawdzić, które szablony są dostępne, zobacz instrukcje w temacie Szablony list. Jeśli nie masz szablonu do użycia, przejdź do opcji 2.

Oto tworzenie messageTemplate przy użyciu szablonu domyślnego, sample_template.
Jeśli sample_template nie jesteś dostępny, przejdź do opcji 2. Aby zapoznać się z zaawansowanymi użytkownikami, zobacz stronę Szablony , aby dowiedzieć się, jak wysłać inny szablon z opcją 1.

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie szablonowych wiadomości WhatsApp do użytkowników WhatsApp. Aby wysłać komunikaty szablonu poniżej szczegółów, są wymagane:

// Assemble the template content
string templateName = "sample_template";
string templateLanguage = "en_us";
var messageTemplate = new MessageTemplate(templateName, templateLanguage);

Aby uzyskać więcej przykładów sposobu montażu elementu MessageTemplate i sposobu tworzenia własnego szablonu, zapoznaj się z następującym zasobem:

Aby uzyskać więcej informacji na temat wymagań WhatsApp dotyczących szablonów, zapoznaj się z dokumentacją interfejsu API platformy WhatsApp Business:

Następnie wyślij komunikat szablonu:

// Assemble template message
var templateContent = 
    new TemplateNotificationContent(channelRegistrationId, recipientList, messageTemplate);

// Send template message
Response<SendMessageResult> sendTemplateMessageResult = 
    await notificationMessagesClient.SendAsync(templateContent);

Teraz użytkownik musi odpowiedzieć na komunikat szablonu. Z konta użytkownika WhatsApp odpowiedz na wiadomość szablonu otrzymaną z konta WhatsApp Business. Zawartość komunikatu jest nieistotna dla tego scenariusza.

Ważne

Odbiorca musi odpowiedzieć na wiadomość szablonu, aby zainicjować konwersację przed dostarczeniem wiadomości sms-owej lub multimedialnej do adresata.

(Opcja 2) Inicjowanie konwersacji od użytkownika

Drugą opcją zainicjowania rozmowy między kontem WhatsApp Business a użytkownikiem WhatsApp jest zainicjowanie rozmowy. W tym celu, z osobistego konta WhatsApp, wyślij wiadomość do twojego numeru biznesowego (identyfikator nadawcy).

Rozmowa WhatsApp wyświetlona w Internecie pokazująca wiadomość użytkownika wysłaną do numeru konta WhatsApp Business.

Wysyłanie wiadomości SMS do użytkownika WhatsApp

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie wiadomości sms WhatsApp, które inicjowały użytkowników WhatsApp. Aby wysłać wiadomości SMS poniżej, wymagane są następujące szczegóły:

Ważne

Aby wysłać wiadomość SMS do użytkownika WhatsApp, użytkownik WhatsApp musi najpierw wysłać wiadomość na konto WhatsApp Business. Aby uzyskać więcej informacji, zobacz Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp.

W tym przykładzie odpowiadamy użytkownikowi WhatsApp na tekst "Dziękujemy za twoją opinię.\n From Notification Messaging SDK".

Następnie wyślij wiadomość SMS:

// 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);

Wyślij wiadomość medialną do użytkownika WhatsApp

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie wiadomości Image WhatsApp do użytkowników WhatsApp. Do wysyłania komunikatów osadzonych obrazów poniżej są wymagane następujące szczegóły:

Ważne

Aby wysłać wiadomość SMS do użytkownika WhatsApp, użytkownik WhatsApp musi najpierw wysłać wiadomość na konto WhatsApp Business. Aby uzyskać więcej informacji, zobacz Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp.

Na przykład utwórz identyfikator URI:

var uri = new Uri("https://aka.ms/acsicon1");

Złóż następnie wiadomość medialną:

// Assemble media message
var mediaContent = 
    new MediaNotificationContent(channelRegistrationId, recipientList, uri);

// Send media message
Response<SendMessageResult> sendMediaMessageResult = 
    await notificationMessagesClient.SendAsync(mediaContent);

Uruchamianie kodu

Skompiluj i uruchom program.

Aby wysłać wiadomość tekstową lub medialną do użytkownika WhatsApp, musi istnieć aktywna rozmowa między Kontem Biznesowym WhatsApp a użytkownikiem WhatsApp.
Jeśli nie masz aktywnej konwersacji, na potrzeby tego przewodnika Szybki start należy dodać oczekiwanie między wysłaniem wiadomości szablonu i wysłaniem wiadomości SMS. To dodatkowe opóźnienie daje wystarczająco dużo czasu, aby odpowiedzieć na firmę na koncie WhatsApp użytkownika. Pełny przykład w sekcji Przykładowy kod wyświetla monit o ręczne wprowadzanie danych przez użytkownika przed wysłaniem następnego komunikatu.

W przypadku powodzenia otrzymasz trzy wiadomości na koncie WhatsApp użytkownika.

  1. Aby skompilować kod, naciśnij klawisze Ctrl+F7.
  2. Aby uruchomić program bez debugowania, naciśnij klawisze Ctrl+F5.

Pełny przykładowy kod

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");
            MediaNotificationContent mediaContent =
                new MediaNotificationContent(channelRegistrationId, recipientList, uri);
            Response<SendMessageResult> sendMediaMessageResult =
                await notificationMessagesClient.SendAsync(mediaContent);

            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");
        }
    }
}

Wymagania wstępne

Konfigurowanie

Aby skonfigurować środowisko wysyłania komunikatów, wykonaj kroki opisane w poniższych sekcjach.

Tworzenie nowej aplikacji Java

Otwórz terminal lub okno polecenia i przejdź do katalogu, w którym chcesz utworzyć aplikację Java. Uruchom następujące polecenie, aby wygenerować projekt Java na podstawie szablonu maven-archetype-quickstart.

mvn archetype:generate -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart" -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeVersion="1.4" -DinteractiveMode="false"

Cel generate tworzy katalog o takiej samej nazwie jak artifactId wartość. W tym katalogu katalog src/main/java zawiera kod źródłowy projektu, katalog src/test/java zawiera źródło testowe, a plik pom.xml jest projektem Project Object Model (POM).

Instalowanie pakietu

Otwórz plik pom.xml w edytorze tekstów. Dodaj następujący element zależności do grupy zależności.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-messages</artifactId>
    <version>1.0.0</version>
</dependency>

Konfigurowanie struktury aplikacji

Otwórz plik /src/main/java/com/communication/quickstart/App.java w edytorze tekstów, dodaj dyrektywy importu i usuń instrukcję 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.
    }
}

Model obiektów

Następujące klasy i interfejsy obsługują niektóre główne funkcje zestawu SDK zaawansowanego obsługi komunikatów usług Azure Communication Services dla języka Java.

Nazwa/nazwisko opis
NotificationMessagesClientBuilder Ta klasa tworzy klienta komunikatów powiadomień. Należy podać punkt końcowy i poświadczenie.
NotificationMessagesClient Ta klasa jest potrzebna do wysyłania wiadomości WhatsApp i pobierania plików multimedialnych.
NotificationMessagesAsyncClient Ta klasa jest potrzebna do wysyłania wiadomości WhatsApp i pobierania plików multimedialnych asynchronicznie.
SendMessageResult Ta klasa zawiera wynik z usługi Advance Messaging service na potrzeby wysyłania wiadomości.
MessageTemplateClientBuilder Ta klasa tworzy klienta szablonu komunikatu. Należy podać punkt końcowy i poświadczenie.
MessageTemplateClient Ta klasa jest potrzebna do pobrania listy szablonów WhatsApp.
MessageTemplateAsyncClient Ta klasa jest potrzebna, aby uzyskać listę szablonów WhatsApp asynchronicznie.

Przykłady kodu

Wykonaj następujące kroki, aby dodać niezbędne fragmenty kodu do funkcji main pliku App.java .

Uwierzytelnianie użytkownika

Istnieje kilka różnych opcji uwierzytelniania klienta komunikatów:

Aby uwierzytelnić klienta, należy utworzyć wystąpienie elementu NotificationMessagesClient lub MessageTemplateClient przy użyciu parametry połączenia. Można również zainicjować klienta przy użyciu dowolnego niestandardowego klienta HTTP, który implementuje com.azure.core.http.HttpClient interfejs.

Dla uproszczenia ten przewodnik Szybki start używa parametry połączenia do uwierzytelniania. W środowiskach produkcyjnych zalecamy używanie jednostek usługi.

Pobierz parametry połączenia z zasobu usług Azure Communication Services w witrynie Azure Portal. Po lewej Keys stronie przejdź do karty. Skopiuj Connection string pole dla elementu Primary key. Parametry połączenia ma format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Zrzut ekranu przedstawiający zasób usług Azure Communication Services w witrynie Azure Portal z wyświetlonym polem

Ustaw zmienną środowiskową COMMUNICATION_SERVICES_CONNECTION_STRING na wartość parametry połączenia.
Otwórz okno konsoli i wprowadź następujące polecenie:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Aby uzyskać więcej informacji na temat ustawiania zmiennej środowiskowej dla systemu, wykonaj kroki opisane w temacie Przechowywanie parametry połączenia w zmiennej środowiskowej.

Aby utworzyć wystąpienie klasy NotificationMessagesClient, dodaj następujący kod do main metody :

// 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();

Ustawianie identyfikatora rejestracji kanału

Identyfikator GUID identyfikatora rejestracji kanału został utworzony podczas rejestracji kanału. Możesz wyszukać go w portalu na karcie Kanały zasobu usług Azure Communication Services.

Zrzut ekranu przedstawiający zasób usług Azure Communication Services w witrynie Azure Portal z wyświetloną kartą

Przypisz ją do zmiennej o nazwie channelRegistrationId.

String channelRegistrationId = "<your channel registration id GUID>";

Ustawianie listy adresatów

Musisz podać rzeczywisty numer telefonu, który ma skojarzone konto WhatsApp. To konto WhatsApp otrzymuje wiadomości tekstowe i multimedialne wysyłane w tym przewodniku Szybki start. W tym przewodniku Szybki start ten numer telefonu może być osobistym numerem telefonu.

Numer telefonu odbiorcy nie może być numerem telefonu służbowego (identyfikator nadawcy) skojarzonym z rejestracją kanału WhatsApp. Identyfikator nadawcy jest wyświetlany jako nadawca wiadomości tekstowych i multimedialnych wysyłanych do adresata.

Numer telefonu powinien zawierać kod kraju. Aby uzyskać więcej informacji na temat formatowania numeru telefonu, zobacz dokumentację WhatsApp dotyczącą formatów numerów Telefon.

Uwaga

Na liście adresatów jest obecnie obsługiwany tylko jeden numer telefonu.

Utwórz listę adresatów w następujący sposób:

List<String> recipientList = new ArrayList<>();
recipientList.add("<to WhatsApp phone number>");

Przykład:

// Example only
List<String> recipientList = new ArrayList<>();
recipientList.add("+14255550199");

Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp

Rozmowy między kontem WhatsApp Business i użytkownikiem WhatsApp można zainicjować na jeden z dwóch sposobów:

  • Firma wysyła wiadomość szablonu do użytkownika WhatsApp.
  • Użytkownik WhatsApp wysyła wszelkie wiadomości do numeru biznesowego.

Niezależnie od sposobu rozpoczęcia konwersacji firma może wysyłać tylko wiadomości szablonów, dopóki użytkownik nie wyśle wiadomości do firmy. Dopiero po wysłaniu wiadomości do firmy przez użytkownika firma może wysyłać wiadomości tekstowe lub multimedialne do użytkownika podczas aktywnej konwersacji. Po wygaśnięciu 24-godzinnego okna konwersacji należy ponownie zainicjować konwersację. Aby dowiedzieć się więcej o rozmowach, zobacz definicję na WhatsApp Business Platform.

(Opcja 1) Inicjowanie konwersacji z firmy — wysyłanie wiadomości szablonu

Zainicjuj konwersację, wysyłając wiadomość szablonu.

Najpierw utwórz element MessageTemplate przy użyciu wartości szablonu.

Uwaga

Aby sprawdzić, które szablony są dostępne, zobacz instrukcje w temacie Szablony list. Jeśli nie masz szablonu do użycia, przejdź do opcji 2.

Oto tworzenie messageTemplate przy użyciu szablonu domyślnego, sample_template.
Jeśli sample_template nie jesteś dostępny, przejdź do opcji 2. Aby zapoznać się z zaawansowanymi użytkownikami, zobacz stronę Szablony , aby dowiedzieć się, jak wysłać inny szablon z opcją 1.

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie szablonowych wiadomości WhatsApp do użytkowników WhatsApp. Aby wysłać komunikaty szablonu poniżej szczegółów, są wymagane:

// Assemble the template content
String templateName = "sample_template";
String templateLanguage = "en_us";
MessageTemplate messageTemplate = new MessageTemplate(templateName, templateLanguage);

// Assemble template message
TemplateNotificationContent templateContent = new TemplateNotificationContent(channelRegistrationId, recipientList, messageTemplate);

// Send template message
SendMessageResult templateMessageResult = notificationClient.send(templateContent);

// Process result
for (MessageReceipt messageReceipt : templateMessageResult.getReceipts()) {
    System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}

Teraz użytkownik musi odpowiedzieć na komunikat szablonu. Z konta użytkownika WhatsApp odpowiedz na wiadomość szablonu otrzymaną z konta WhatsApp Business. Zawartość komunikatu jest nieistotna dla tego scenariusza.

Ważne

Odbiorca musi odpowiedzieć na wiadomość szablonu, aby zainicjować konwersację przed dostarczeniem wiadomości sms-owej lub multimedialnej do adresata.

(Opcja 2) Inicjowanie konwersacji od użytkownika

Drugą opcją zainicjowania rozmowy między kontem WhatsApp Business a użytkownikiem WhatsApp jest zainicjowanie rozmowy. W tym celu, z osobistego konta WhatsApp, wyślij wiadomość do twojego numeru biznesowego (identyfikator nadawcy).

Rozmowa WhatsApp wyświetlona w Internecie pokazująca wiadomość użytkownika wysłaną do numeru konta WhatsApp Business.

Wysyłanie wiadomości SMS do użytkownika WhatsApp

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie wiadomości sms WhatsApp, które inicjowały użytkowników WhatsApp. Aby wysłać wiadomości SMS poniżej, wymagane są następujące szczegóły:

Ważne

Aby wysłać wiadomość SMS do użytkownika WhatsApp, użytkownik WhatsApp musi najpierw wysłać wiadomość na konto WhatsApp Business. Aby uzyskać więcej informacji, zobacz Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp.

W tym przykładzie odpowiadamy użytkownikowi WhatsApp na tekst "Dziękujemy za twoją opinię.\n From Notification Messaging SDK".

Następnie wyślij wiadomość SMS:

// 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());
}

Wyślij wiadomość medialną do użytkownika WhatsApp

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie wiadomości Image WhatsApp do użytkowników WhatsApp. Do wysyłania komunikatów osadzonych obrazów poniżej są wymagane następujące szczegóły:

Ważne

Aby wysłać wiadomość SMS do użytkownika WhatsApp, użytkownik WhatsApp musi najpierw wysłać wiadomość na konto WhatsApp Business. Aby uzyskać więcej informacji, zobacz Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp.

Na przykład utwórz identyfikator URI:

String mediaUrl = "https://aka.ms/acsicon1";

Złóż następnie wiadomość medialną:

// Assemble media message
MediaNotificationContent mediaContent = new MediaNotificationContent(channelRegistrationId, recipientList, mediaUrl);

// Send media message
SendMessageResult mediaMessageResult = notificationClient.send(mediaContent);

// Process result
for (MessageReceipt messageReceipt : mediaMessageResult.getReceipts()) {
    System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}

Uruchamianie kodu

  1. Przejdź do katalogu zawierającego plik pom.xml i skompiluj mvn projekt przy użyciu polecenia .

    mvn compile
    
  2. Uruchom aplikację, wykonując następujące mvn polecenie.

    mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
    

Pełny przykładowy kod

Znajdź sfinalizowany kod dla tego przewodnika Szybki start w witrynie GitHub.

Wymagania wstępne

Konfigurowanie

Aby skonfigurować środowisko wysyłania komunikatów, wykonaj kroki opisane w poniższych sekcjach.

Tworzenie nowej aplikacji Node.js

  1. Utwórz nowy katalog dla aplikacji i przejdź do niej, otwierając terminal lub okno polecenia, a następnie uruchom następujące polecenie.

    mkdir advance-messages-quickstart && cd advance-messages-quickstart
    
  2. Uruchom następujące polecenie, aby utworzyć plik package.json z ustawieniami domyślnymi.

    npm init -y
    
  3. Użyj edytora tekstów, aby utworzyć plik o nazwie send-messages.js w katalogu głównym projektu.

  4. Dodaj następujący fragment kodu do send-messages.js pliku.

    async function main() {
        // Quickstart code goes here.
    }
    
    main().catch((error) => {
        console.error("Encountered an error while sending message: ", error);
        process.exit(1);
    });
    

W poniższych sekcjach dodano cały kod źródłowy tego przewodnika Szybki start do utworzonego pliku send-messages.js .

Instalowanie pakietu

Użyj polecenia , npm install aby zainstalować zestaw AZURE Communication Services Advance Messaging SDK dla języka JavaScript.

npm install @azure-rest/communication-messages --save

Opcja --save wyświetla bibliotekę jako zależność w pliku package.json .

Model obiektów

Następujące klasy i interfejsy obsługują niektóre główne funkcje zestawu SDK zaawansowanego obsługi komunikatów usług Azure Communication Services dla języka JavaScript.

Nazwa/nazwisko opis
MessageClient Ta klasa łączy się z zasobem usług Azure Communication Services. Wysyła komunikaty.
MessageTemplate Ta klasa definiuje używany szablon oraz zawartość właściwości szablonu dla wiadomości.

Przykłady kodu

Wykonaj następujące kroki, aby dodać niezbędne fragmenty kodu do funkcji main pliku send-messages.js .

Uwierzytelnianie użytkownika

Poniższy kod pobiera parametry połączenia zasobu ze zmiennej środowiskowej o nazwie COMMUNICATION_SERVICES_CONNECTION_STRING przy użyciu pakietu dotenv.

Dla uproszczenia ten przewodnik Szybki start używa parametry połączenia do uwierzytelniania. W środowiskach produkcyjnych zalecamy używanie jednostek usługi.

Pobierz parametry połączenia z zasobu usług Azure Communication Services w witrynie Azure Portal. Po lewej Keys stronie przejdź do karty. Skopiuj Connection string pole dla elementu Primary key. Parametry połączenia ma format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Zrzut ekranu przedstawiający zasób usług Azure Communication Services w witrynie Azure Portal z wyświetlonym polem

Ustaw zmienną środowiskową COMMUNICATION_SERVICES_CONNECTION_STRING na wartość parametry połączenia.
Otwórz okno konsoli i wprowadź następujące polecenie:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Aby uzyskać więcej informacji na temat ustawiania zmiennej środowiskowej dla systemu, wykonaj kroki opisane w temacie Przechowywanie parametry połączenia w zmiennej środowiskowej.

Aby utworzyć wystąpienie klasy MessageClient, dodaj następujący kod do Main metody :

const MessageClient = require("@azure-rest/communication-messages").default;

// Set Connection string
const connectionString = process.env["COMMUNICATION_SERVICES_CONNECTION_STRING"];

// Instantiate the client
const client = MessageClient(connectionString);

Ustawianie identyfikatora rejestracji kanału

Identyfikator GUID identyfikatora rejestracji kanału został utworzony podczas rejestracji kanału. Możesz wyszukać go w portalu na karcie Kanały zasobu usług Azure Communication Services.

Zrzut ekranu przedstawiający zasób usług Azure Communication Services w witrynie Azure Portal z wyświetloną kartą

Przypisz ją do zmiennej o nazwie channelRegistrationId.

const channelRegistrationId = "<your channel registration id GUID>";

Ustawianie listy adresatów

Musisz podać rzeczywisty numer telefonu, który ma skojarzone konto WhatsApp. To konto WhatsApp otrzymuje szablon, tekst i wiadomości multimedialne wysyłane w tym przewodniku Szybki start. W tym przewodniku Szybki start ten numer telefonu może być osobistym numerem telefonu.

Numer telefonu odbiorcy nie może być numerem telefonu służbowego (identyfikator nadawcy) skojarzonym z rejestracją kanału WhatsApp. Identyfikator nadawcy jest wyświetlany jako nadawca wiadomości tekstowych i multimedialnych wysyłanych do adresata.

Numer telefonu powinien zawierać kod kraju. Aby uzyskać więcej informacji na temat formatowania numeru telefonu, zobacz dokumentację WhatsApp dotyczącą formatów numerów Telefon.

Uwaga

Na liście adresatów jest obecnie obsługiwany tylko jeden numer telefonu.

Utwórz listę adresatów w następujący sposób:

const recipientList = ["<to WhatsApp phone number>"];

Przykład:

// Example only
const recipientList = ["+14255550199"];

Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp

Rozmowy między kontem WhatsApp Business i użytkownikiem WhatsApp można zainicjować na jeden z dwóch sposobów:

  • Firma wysyła wiadomość szablonu do użytkownika WhatsApp.
  • Użytkownik WhatsApp wysyła wszelkie wiadomości do numeru biznesowego.

Niezależnie od sposobu rozpoczęcia konwersacji firma może wysyłać tylko wiadomości szablonów, dopóki użytkownik nie wyśle wiadomości do firmy. Dopiero po wysłaniu wiadomości do firmy przez użytkownika firma może wysyłać wiadomości tekstowe lub multimedialne do użytkownika podczas aktywnej konwersacji. Po wygaśnięciu 24-godzinnego okna konwersacji należy ponownie zainicjować konwersację. Aby dowiedzieć się więcej o rozmowach, zobacz definicję na WhatsApp Business Platform.

(Opcja 1) Inicjowanie konwersacji z firmy — wysyłanie wiadomości szablonu

Zainicjuj konwersację, wysyłając wiadomość szablonu.

Najpierw utwórz element MessageTemplate przy użyciu wartości szablonu.

Uwaga

Aby sprawdzić, które szablony są dostępne, zobacz instrukcje w temacie Szablony list. Jeśli nie masz szablonu do użycia, przejdź do opcji 2.

Oto tworzenie messageTemplate przy użyciu szablonu domyślnego, sample_template.
Jeśli sample_template nie jesteś dostępny, przejdź do opcji 2. Aby zapoznać się z zaawansowanymi użytkownikami, zobacz stronę Szablony , aby dowiedzieć się, jak wysłać inny szablon z opcją 1.

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie szablonowych wiadomości WhatsApp do użytkowników WhatsApp. Aby wysłać komunikaty szablonu poniżej szczegółów, są wymagane:

// Assemble the template content
const template = {
    name: "sample_template",
    language: "en_US"
};

Aby uzyskać więcej przykładów sposobu montażu elementu MessageTemplate i sposobu tworzenia własnego szablonu, zapoznaj się z następującym zasobem:

Aby uzyskać więcej informacji na temat wymagań WhatsApp dotyczących szablonów, zapoznaj się z dokumentacją interfejsu API platformy WhatsApp Business:

// Send template message
const templateMessageResult = await client.path("/messages/notifications:send").post({
    contentType: "application/json",
    body: {
        channelRegistrationId: channelRegistrationId,
        to: recipientList,
        kind: "template",
        template: template
    }
});

// Process result
if (templateMessageResult.status === "202") {
    templateMessageResult.body.receipts.forEach((receipt) => {
        console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
    });
} else {
    throw new Error("Failed to send message");
}

Teraz użytkownik musi odpowiedzieć na komunikat szablonu. Z konta użytkownika WhatsApp odpowiedz na wiadomość szablonu otrzymaną z konta WhatsApp Business. Zawartość komunikatu jest nieistotna dla tego scenariusza.

Ważne

Odbiorca musi odpowiedzieć na wiadomość szablonu, aby zainicjować konwersację przed dostarczeniem wiadomości sms-owej lub multimedialnej do adresata.

(Opcja 2) Inicjowanie konwersacji od użytkownika

Drugą opcją zainicjowania rozmowy między kontem WhatsApp Business a użytkownikiem WhatsApp jest zainicjowanie rozmowy. W tym celu, z osobistego konta WhatsApp, wyślij wiadomość do twojego numeru biznesowego (identyfikator nadawcy).

Rozmowa WhatsApp wyświetlona w Internecie pokazująca wiadomość użytkownika wysłaną do numeru konta WhatsApp Business.

Wysyłanie wiadomości SMS do użytkownika WhatsApp

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie wiadomości sms WhatsApp, które inicjowały użytkowników WhatsApp. Aby wysłać wiadomości SMS poniżej, wymagane są następujące szczegóły:

Ważne

Aby wysłać wiadomość SMS do użytkownika WhatsApp, użytkownik WhatsApp musi najpierw wysłać wiadomość na konto WhatsApp Business. Aby uzyskać więcej informacji, zobacz Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp.

W tym przykładzie odpowiadamy użytkownikowi WhatsApp na tekst "Dziękujemy za twoją opinię.\n From Notification Messaging SDK".

Złóż i wyślij komunikat multimedialny:

// 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");
}

Wyślij wiadomość medialną do użytkownika WhatsApp

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie wiadomości Image WhatsApp do użytkowników WhatsApp. Do wysyłania komunikatów osadzonych obrazów poniżej są wymagane następujące szczegóły:

Ważne

Aby wysłać wiadomość SMS do użytkownika WhatsApp, użytkownik WhatsApp musi najpierw wysłać wiadomość na konto WhatsApp Business. Aby uzyskać więcej informacji, zobacz Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp.

Aby wysłać komunikat multimedialny, podaj adres URL obrazu. Na przykład

const url = "https://aka.ms/acsicon1";

Złóż i wyślij komunikat multimedialny:

// Send media 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");
}

Uruchamianie kodu

Użyj polecenia node, aby uruchomić kod dodany do pliku send-messages.js.

node ./send-messages.js

Pełny przykładowy kod

Przykładową aplikację można pobrać z witryny GitHub.

Wymagania wstępne

Konfigurowanie

Tworzenie nowej aplikacji w języku Python

W oknie terminalu lub konsoli utwórz nowy folder dla aplikacji i przejdź do niego.

mkdir messages-quickstart && cd messages-quickstart

Instalowanie pakietu

Należy użyć biblioteki klienta komunikatów usługi Azure Communication dla języka Python w wersji 1.0.0 lub nowszej.

W wierszu polecenia konsoli wykonaj następujące polecenie:

pip install azure-communication-messages

Konfigurowanie struktury aplikacji

Utwórz nowy plik o nazwie messages-quickstart.py i dodaj podstawową strukturę programu.

type nul > messages-quickstart.py   

Podstawowa struktura programu

import os

class MessagesQuickstart(object):
    print("Azure Communication Services - Advanced Messages SDK Quickstart")

if __name__ == '__main__':
    messages = MessagesQuickstart()

Model obiektów

Następujące klasy i interfejsy obsługują niektóre główne funkcje zestawu SDK komunikatów usług Azure Communication Services dla języka Python.

Nazwa/nazwisko opis
NotificationMessagesClient Ta klasa łączy się z zasobem usług Azure Communication Services. Wysyła komunikaty.
MessageTemplate Ta klasa definiuje używany szablon oraz zawartość właściwości szablonu dla wiadomości.
TemplateNotificationContent Ta klasa definiuje "kto" i "co" wiadomości szablonu, którą zamierzasz wysłać.
TextNotificationContent Ta klasa definiuje "kto" i "co" wiadomości sms, którą zamierzasz wysłać.
ImageNotificationContent Ta klasa definiuje "kto" i "co" wiadomości multimedialnej obrazu, którą zamierzasz wysłać.

Przykłady kodu

Wykonaj następujące kroki, aby dodać niezbędne fragmenty kodu do programu messages-quickstart.py python.

Uwierzytelnianie użytkownika

Wysyłanie komunikatów odbywa się przy użyciu elementu NotificationMessagesClient. Element NotificationMessagesClient jest uwierzytelniany przy użyciu parametry połączenia uzyskanego z zasobu usług Azure Communication Services w witrynie Azure Portal. Aby uzyskać więcej informacji na temat parametry połączenia, zobacz access-your-connection-strings-and-service-endpoints.

Pobierz parametry połączenia zasobów usługi Azure Communication z witryny Azure Portal, jak pokazano na zrzucie ekranu. Po lewej Keys stronie przejdź do karty. Skopiuj Connection string pole dla klucza podstawowego. Parametry połączenia ma format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Zrzut ekranu przedstawiający zasób usług Azure Communication Services w witrynie Azure Portal z wyświetlonym polem

Ustaw zmienną środowiskową COMMUNICATION_SERVICES_CONNECTION_STRING na wartość parametry połączenia.
Otwórz okno konsoli i wprowadź następujące polecenie:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Po dodaniu zmiennej środowiskowej może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą musiały odczytać zmienną środowiskową, w tym okno konsoli. Jeśli na przykład używasz programu Visual Studio jako edytora, uruchom ponownie program Visual Studio przed uruchomieniem przykładu.

Aby uzyskać więcej informacji na temat ustawiania zmiennej środowiskowej dla systemu, wykonaj kroki opisane w temacie Przechowywanie parametry połączenia w zmiennej środowiskowej.

    # 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)

Ustawianie identyfikatora rejestracji kanału

Identyfikator GUID identyfikatora rejestracji kanału został utworzony podczas rejestracji kanału. Możesz wyszukać go w portalu na karcie Kanały zasobu usług Azure Communication Services.

Zrzut ekranu przedstawiający zasób usług Azure Communication Services w witrynie Azure Portal z wyświetloną kartą

Przypisz ją do zmiennej o nazwie channelRegistrationId.

    channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")

Ustawianie listy adresatów

Musisz podać rzeczywisty numer telefonu, który ma skojarzone konto WhatsApp. To konto WhatsApp otrzymuje szablon, tekst i wiadomości multimedialne wysyłane w tym przewodniku Szybki start. W tym przewodniku Szybki start ten numer telefonu może być osobistym numerem telefonu.

Numer telefonu odbiorcy nie może być numerem telefonu służbowego (identyfikator nadawcy) skojarzonym z rejestracją kanału WhatsApp. Identyfikator nadawcy jest wyświetlany jako nadawca wiadomości tekstowych i multimedialnych wysyłanych do adresata.

Numer telefonu powinien zawierać kod kraju. Aby uzyskać więcej informacji na temat formatowania numeru telefonu, zobacz dokumentację WhatsApp dotyczącą formatów numerów Telefon.

Uwaga

Na liście adresatów jest obecnie obsługiwany tylko jeden numer telefonu.

Ustaw listę adresatów w następujący sposób:

    phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")

Przykład użycia:

    # Example only
    to=[self.phone_number],

Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp

Rozmowy między kontem WhatsApp Business i użytkownikiem WhatsApp można zainicjować na jeden z dwóch sposobów:

  • Firma wysyła wiadomość szablonu do użytkownika WhatsApp.
  • Użytkownik WhatsApp wysyła wszelkie wiadomości do numeru biznesowego.

Niezależnie od sposobu rozpoczęcia konwersacji firma może wysyłać tylko wiadomości szablonów, dopóki użytkownik nie wyśle wiadomości do firmy. Dopiero po wysłaniu wiadomości do firmy przez użytkownika firma może wysyłać wiadomości tekstowe lub multimedialne do użytkownika podczas aktywnej konwersacji. Po wygaśnięciu 24-godzinnego okna konwersacji należy ponownie zainicjować konwersację. Aby dowiedzieć się więcej o rozmowach, zobacz definicję na WhatsApp Business Platform.

(Opcja 1) Inicjowanie konwersacji z firmy — wysyłanie wiadomości szablonu

Zainicjuj konwersację, wysyłając wiadomość szablonu.

Najpierw utwórz element MessageTemplate przy użyciu wartości szablonu.

Uwaga

Aby sprawdzić, które szablony są dostępne, zobacz instrukcje w temacie Szablony list. Jeśli nie masz szablonu do użycia, przejdź do opcji 2.

Oto tworzenie messageTemplate przy użyciu szablonu domyślnego, sample_template.
Jeśli sample_template nie jesteś dostępny, przejdź do opcji 2. Aby zapoznać się z zaawansowanymi użytkownikami, zobacz stronę Szablony , aby dowiedzieć się, jak wysłać inny szablon z opcją 1.

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie szablonowych wiadomości WhatsApp do użytkowników WhatsApp. Aby wysłać komunikaty szablonu poniżej szczegółów, są wymagane:

Aby uzyskać więcej przykładów sposobu montażu elementu MessageTemplate i sposobu tworzenia własnego szablonu, zapoznaj się z następującym zasobem:

Aby uzyskać więcej informacji na temat wymagań WhatsApp dotyczących szablonów, zapoznaj się z dokumentacją interfejsu API platformy WhatsApp Business:

Aby wysłać wiadomość szablonu WhatsApp, dodaj poniższy kod w funkcji send_template_message(self).

        input_template: MessageTemplate = MessageTemplate(
            name="<<template_name>>",
            language="<<template_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")

Dodaj wywołanie send_template_message() do metody main.

    # Calling send_template_message()
    messages.send_template_message()

Teraz użytkownik musi odpowiedzieć na komunikat szablonu. Z konta użytkownika WhatsApp odpowiedz na wiadomość szablonu otrzymaną z konta WhatsApp Business. Zawartość komunikatu jest nieistotna dla tego scenariusza.

Ważne

Odbiorca musi odpowiedzieć na wiadomość szablonu, aby zainicjować konwersację przed dostarczeniem wiadomości sms-owej lub multimedialnej do adresata.

(Opcja 2) Inicjowanie konwersacji od użytkownika

Drugą opcją zainicjowania rozmowy między kontem WhatsApp Business a użytkownikiem WhatsApp jest zainicjowanie rozmowy. W tym celu, z osobistego konta WhatsApp, wyślij wiadomość do twojego numeru biznesowego (identyfikator nadawcy).

Rozmowa WhatsApp wyświetlona w Internecie pokazująca wiadomość użytkownika wysłaną do numeru konta WhatsApp Business.

Wysyłanie wiadomości SMS do użytkownika WhatsApp

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie wiadomości sms WhatsApp, które inicjowały użytkowników WhatsApp. Aby wysłać wiadomości SMS poniżej, wymagane są następujące szczegóły:

Ważne

Aby wysłać wiadomość SMS do użytkownika WhatsApp, użytkownik WhatsApp musi najpierw wysłać wiadomość na konto WhatsApp Business. Aby uzyskać więcej informacji, zobacz Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp.

W tym przykładzie odpowiadamy użytkownikowi WhatsApp na tekst "Dziękujemy za twoją opinię.\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")

Zaktualizuj metodę main, aby uruchomić send_text_message()

    #Calling send_text_message()
    messages.send_text_message()

Wyślij wiadomość medialną do użytkownika WhatsApp

Zestaw SDK wiadomości umożliwia firmie Contoso wysyłanie wiadomości Image WhatsApp do użytkowników WhatsApp. Do wysyłania komunikatów osadzonych obrazów poniżej są wymagane następujące szczegóły:

Ważne

Aby wysłać wiadomość SMS do użytkownika WhatsApp, użytkownik WhatsApp musi najpierw wysłać wiadomość na konto WhatsApp Business. Aby uzyskać więcej informacji, zobacz Rozpoczynanie wysyłania wiadomości między firmą a użytkownikiem WhatsApp.

Przykład media_uri używany w wysyłaniu wiadomości WhatsApp mediów.

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")

Zaktualizuj metodę main, aby uruchomić send_image_message()

    # Calling send_image_message()
    messages.send_image_message()

Uruchamianie kodu

Aby uruchomić kod, upewnij się, że znajdujesz się w katalogu, w którym messages-quickstart.py znajduje się plik.

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>>

Pełny przykładowy kod

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")

if __name__ == '__main__':
    messages = MessagesQuickstart()
    messages.send_template_message()
    messages.send_text_message()
    messages.send_image_message()

Inne przykłady

Możesz przejrzeć i pobrać inne przykładowe kody dla zestawu SDK komunikatów języka Python w witrynie GitHub.

Następne kroki

W tym przewodniku Szybki start wypróbowano zestaw Advanced Messaging for WhatsApp SDK. Następnie możesz również zapoznać się z następującymi artykułami: