Freigeben über


Senden von Text- und Medien-WhatsApp-Nachrichten

Azure Communication Services ermöglicht es Ihnen, WhatsApp-Nachrichten zu senden und zu empfangen. In diesem Artikel wird beschrieben, wie Sie Ihre App mit dem Azure Communication Advanced Messages SDK integrieren, um mit dem Senden und Empfangen von WhatsApp-Nachrichten zu beginnen. Um die Anleitungen in diesem Artikel zu befolgen, fallen in Ihrem Azure-Konto geringfügige Kosten von höchstens einigen wenigen Cent (USD) an.

Voraussetzungen

Einrichten der Umgebung

Erstellen des .NET-Projekts

Um Ihr Projekt zu erstellen, befolgen Sie das Tutorial unter Erstellen einer .NET-Konsolenanwendung mit Visual Studio.

Um den Code zu kompilieren, drücken Sie STRG+F7.

Installieren des Pakets

Installieren Sie das NuGet-Paket „Azure.Communication.Messages“ in Ihrem C#-Projekt.

  1. Öffnen Sie den NuGet-Paket-Manager unter Project>Manage NuGet Packages....
  2. Suchen Sie nach dem Paket Azure.Communication.Messages.
  3. Installieren Sie das neueste Release.

Einrichten des App-Frameworks

Öffnen Sie die Program.cs-Datei in einem Text-Editor.

Ersetzen Sie den Inhalt Ihrer Program.cs durch den folgenden Code:

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

Um die Features der Funktion „Erweiterte Nachrichtenübermittlung“ zu verwenden, fügen Sie eine using-Anweisung hinzu, um den Azure.Communication.Messages-Namespace einzubinden.

using Azure.Communication.Messages;

Objektmodell

Die folgenden Klassen und Schnittstellen verarbeiten einige der wichtigsten Features des Azure Communication Services Advance Messaging SDK für .NET.

Klassenname Beschreibung
NotificationMessagesClient Stellt eine Verbindung mit Ihrer Azure Communication Services-Ressource her. Sie sendet die Nachrichten.
MessageTemplate Definiert die verwendete Vorlage und den Inhalt der Vorlageneigenschaften für Ihre Nachricht.
TemplateNotificationContent Definiert das „Wer“ und das „Was“ der Nachrichtenvorlage, die Sie senden möchten.
TextNotificationContent Definiert das „Wer“ und das „Was“ der SMS, die Sie senden möchten.
ImageNotificationContent Definiert das „Wer“ und das „Was“ der Bildmediennachricht, die Sie senden möchten.
DocumentNotificationContent Definiert das „Wer“ und das „Was“ der Dokumentmediennachricht, die Sie senden möchten.
VideoNotificationContent Definiert das „Wer“ und das „Was“ der Videomediennachricht, die Sie senden möchten.
AudioNotificationContent Definiert das „Wer“ und das „Was“ der Audiomediennachricht, die Sie senden möchten.

Hinweis

Weitere Informationen finden Sie in der Referenz zum Azure SDK für .NET unter Azure.Communication.Messages (Namespace).

Allgemeine Konfiguration

Führen Sie die folgenden Schritte aus, um dem Python-Programm „messages-quickstart.py“ die erforderlichen Codeschnipsel hinzuzufügen.

Authentifizieren des Clients

Das Messages SDK verwendet NotificationMessagesClient zum Senden von Nachrichten. Die NotificationMessagesClient-Methode wird mit Ihrer Verbindungszeichenfolge authentifiziert, die von einer Azure Communication Services-Ressource im Azure-Portal abgerufen wird. Weitere Informationen zu Verbindungszeichenfolgen finden Sie unter access-your-connection-strings-and-service-endpoints.

Der Einfachheit halber verwendet dieser Artikel eine Verbindungszeichenfolge zur Authentifizierung. In Produktionsumgebungen wird empfohlen, Dienstprinzipale zu verwenden.

Rufen Sie die Verbindungszeichenfolge aus Ihrer Azure Communication Services-Ressource im Azure-Portal ab. Navigieren Sie auf der linken Seite zur Registerkarte Keys. Kopieren Sie das Feld Connection string für den Primärschlüssel. Die Verbindungszeichenfolge hat das Format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Screenshot einer Azure Communication Services-Ressource im Azure-Portal, die das Feld „Verbindungszeichenfolge“ im Abschnitt „Primärschlüssel“ anzeigt.

Legen Sie die Umgebungsvariable COMMUNICATION_SERVICES_CONNECTION_STRING auf den Wert Ihrer Verbindungszeichenfolge fest.
Öffnen Sie ein Konsolenfenster, und geben Sie den folgenden Befehl ein:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Nachdem Sie die Umgebungsvariable hinzugefügt haben, müssen Sie unter Umständen alle ausgeführten Programme neu starten, die die Umgebungsvariable lesen müssen, z. B. das Konsolenfenster. Wenn Sie beispielsweise Visual Studio als Editor verwenden, müssen Sie Visual Studio neu starten, bevor Sie das Beispiel ausführen.

Weitere Informationen zum Festlegen einer Umgebungsvariablen für Ihr System finden Sie in den Schritten unter Speichern der Verbindungszeichenfolge in einer Umgebungsvariablen.

Um NotificationMessagesClient zu instanziieren, fügen Sie der Main-Methode den folgenden Code hinzu:

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

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

Festlegen der Kanalregistrierungs-ID

Sie haben die GUID der Kanalregistrierungs-ID während der Kanalregistrierung erstellt. Sie können diese auf der Registerkarte Kanäle im Portal Ihrer Azure Communication Services-Ressource finden.

Screenshot einer Azure Communication Services-Ressource im Azure-Portal, auf der die Registerkarte „Kanäle“ angezeigt wird. Besonderes Augenmerk wird auf die Kopierfunktion des Feldes „Kanal-ID“ gelegt.

Weisen Sie diese der Variablen „channelRegistrationId“ zu.

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

Festlegen der Empfängerliste

Sie müssen eine aktive Telefonnummer angeben, die einem WhatsApp-Konto zugeordnet ist. Dieses WhatsApp-Konto empfängt die Vorlagen-, Text- und Mediennachrichten, die in diesem Schnellstart gesendet werden.

In diesem Beispiel können Sie Ihre persönliche Telefonnummer verwenden.

Die Empfängertelefonnummer kann nicht die geschäftliche Telefonnummer (Sender-ID) sein, die der WhatsApp-Kanalregistrierung zugeordnet ist. Die Sender-ID wird als Sender der Text- und Mediennachrichten angezeigt, die an den Empfänger gesendet werden.

Die Telefonnummer muss die Landeskennzahl beinhalten. Weitere Informationen zur Formatierung von Telefonnummern finden Sie in der WhatsApp-Dokumentation für Telefonnummernformate.

Hinweis

In der Empfängerliste wird derzeit lediglich eine Telefonnummer unterstützt.

Erstellen Sie die Empfängerliste folgendermaßen:

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

Beispiel:

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

Einrichten des Nachrichtenversands zwischen Geschäfts- und WhatsApp-Benutzern

Unterhaltungen zwischen einem WhatsApp Business-Konto und WhatsApp-Benutzer*innen kann auf eine von zwei Arten initiiert werden:

  • Das Unternehmen sendet eine Nachrichtenvorlage an die WhatsApp-Benutzer*innen.
  • Die WhatsApp-Benutzer*innen senden eine beliebige Nachricht an die Geschäftsnummer.

Ein Unternehmen kann keine interaktive Unterhaltung initiieren. Ein Unternehmen kann interaktive Nachrichten nur als Antwort auf interaktive Nachrichten von Benutzenden senden. Das Unternehmen kann nur während der aktiven Unterhaltung interaktive Nachrichten an Benutzende senden. Sobald das 24-Stunden-Fenster einer Unterhaltung abgelaufen ist, können nur Benutzende die interaktive Unterhaltung neu starten. Weitere Informationen zu Unterhaltungen finden Sie in der Definition auf der WhatsApp Business Platform.

Um eine interaktive Unterhaltung von ihrem persönlichen WhatsApp-Konto aus zu starten, senden Sie eine Nachricht an Ihre Geschäftsnummer (Sender-ID).

Eine im Web angezeigte WhatsApp-Konversation mit einer Nutzernachricht, die an die Nummer des WhatsApp-Business-Kontos gesendet wurde.

Codebeispiele

Befolgen Sie diese Schritte, um die erforderlichen Codeschnipsel zur Main-Funktion Ihrer Program.cs-Datei hinzuzufügen.

Wichtig

Um eine Text- oder Mediennachricht an WhatsApp-Benutzende zu senden, müssen WhatsApp-Benutzende zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Senden einer Textnachricht an WhatsApp-Benutzer

Mit dem SDK für Messaging kann Contoso WhatsApp-Textnachrichten senden, die von WhatsApp-Benutzern initiiert wurden. Zum Senden einer Textnachricht benötigen Sie Folgendes:

In diesem Beispiel antworten wir per WhatsApp mit dem Text "Thanks for your feedback.\n From Notification Messaging SDK.".

Stellen Sie die SMS zusammen, und senden Sie sie:

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

Senden einer Bildmediennachricht an WhatsApp-Benutzende

Mit dem Messages SDK kann Contoso WhatsApp-Mediennachrichten an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Wichtig

Ab SDK-Version 1.1.0 ist MediaNotificationContent für Bilder veraltet. Es wird empfohlen, für den Bildversand ImageNotificationContent zu nutzen. Informieren Sie sich für andere Medientypen wie DocumentNotificationContent, VideoNotificationContent und AudioNotificationContent über andere inhaltsspezifische Klassen.

Zusammenstellen der Bildnachricht:

var imageLink = new Uri("https://example.com/image.jpg");
var imageNotificationContent = new ImageNotificationContent(channelRegistrationId, recipientList, imageLink)  
{  
    Caption = "Check out this image."  
};

Senden der Bildnachricht:

var imageResponse = await notificationMessagesClient.SendAsync(imageNotificationContent);

Senden einer Dokumentmediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso WhatsApp-Mediennachrichten an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Zusammenstellen des Dokumentinhalts:

var documentLink = new Uri("https://example.com/document.pdf");
var documentNotificationContent = new DocumentNotificationContent(channelRegistrationId, recipientList, documentLink)  
{  
    Caption = "Check out this document.",  
    FileName = "document.pdf"  
};

Senden der Dokumentnachricht:

var documentResponse = await notificationMessagesClient.SendAsync(documentNotificationContent);

Senden einer Videomediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso WhatsApp-Mediennachrichten an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Zusammenstellen der Videonachricht:

var videoLink = new Uri("https://example.com/video.mp4");
var videoNotificationContent = new VideoNotificationContent(channelRegistrationId, recipientList, videoLink)  
{  
    Caption = "Check out this video."  
};

Senden der Videonachricht:

var videoResponse = await notificationMessagesClient.SendAsync(videoNotificationContent);

Senden einer Audiomediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso WhatsApp-Mediennachrichten an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Zusammenstellen der Audionachricht:

var audioLink = new Uri("https://example.com/audio.mp3");
var audioNotificationContent = new AudioNotificationContent(channelRegistrationId, recipientList, audioLink);

Senden der Audionachricht:

var audioResponse = await notificationMessagesClient.SendAsync(audioNotificationContent);

Ausführen des Codes

Erstellen Sie Ihr Programm und führen Sie es aus.

Zum Senden einer Text- oder Mediennachricht an einen WhatsApp-Benutzer ist eine aktive Unterhaltung zwischen dem WhatsApp Business-Konto und dem WhatsApp-Benutzer erforderlich.

Wenn keine aktive Unterhaltung vorliegt, können Sie für dieses Beispiel eine Wartezeit zwischen dem Senden der Vorlagennachricht und dem Senden der SMS hinzufügen. Diese zusätzliche Verzögerung gibt Ihnen genügend Zeit, um dem Unternehmen über das WhatsApp-Konto des Benutzers zu antworten. Das vollständige Beispiel unter Beispielcode verlangt vor dem Senden der nächsten Nachricht eine manuelle Benutzereingabe.

Bei Erfolg erhalten Sie drei Nachrichten im WhatsApp-Konto des Benutzers.

  1. Um den Code zu kompilieren, drücken Sie STRG+F7.
  2. Um das Programm ohne Debuggen auszuführen, drücken Sie STRG+F5.

Vollständiger Beispielcode

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

Voraussetzungen

Einrichten der Umgebung

Um eine Umgebung zum Senden von Nachrichten einzurichten, führen Sie die Schritte in den folgenden Abschnitten aus.

Erstellen einer neuen Java-Anwendung

Öffnen Sie ein Terminal- oder Befehlsfenster, und navigieren Sie zu dem Verzeichnis, in dem Sie Ihre Java-Anwendung erstellen möchten. Führen Sie den nachfolgenden Befehl aus, um das Java-Projekt aus der maven-archetype-quickstart-Vorlage zu generieren.

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

Das generate-Ziel erstellt ein Verzeichnis, das den gleichen Namen wie der artifactId-Wert besitzt. In diesem Verzeichnis enthält das Verzeichnis src/main/java den Quellcode des Projekts, das Verzeichnis src/test/java enthält die Testquelle, und die pom.xml-Datei ist das Projektobjektmodell (POM) des Projekts.

Installieren des Pakets

Öffnen Sie die Datei pom.xml in Ihrem Text-Editor. Fügen Sie der Gruppe „dependencies“ das folgende Abhängigkeitselement hinzu.

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

Einrichten des App-Frameworks

Öffnen Sie /src/main/java/com/communication/quickstart/App.java in einem Text-Editor, fügen Sie Importanweisungen hinzu, und entfernen Sie die System.out.println("Hello world!");-Anweisung:

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

Codebeispiele

Befolgen Sie diese Schritte, um die erforderlichen Codeschnipsel zur Main-Funktion Ihrer App.java-Datei hinzuzufügen.

Einrichten des Nachrichtenversands zwischen Geschäfts- und WhatsApp-Benutzern

Unterhaltungen zwischen einem WhatsApp Business-Konto und WhatsApp-Benutzer*innen kann auf eine von zwei Arten initiiert werden:

  • Das Unternehmen sendet eine Nachrichtenvorlage an die WhatsApp-Benutzer*innen.
  • Die WhatsApp-Benutzer*innen senden eine beliebige Nachricht an die Geschäftsnummer.

Unabhängig davon, wie die Unterhaltung gestartet wurde, kann ein Unternehmen Vorlagennachrichten nur senden, bis der Benutzer eine Nachricht an das Unternehmen sendet. Erst nachdem der Benutzer eine Nachricht an das Unternehmen gesendet hat, darf das Unternehmen während der aktiven Unterhaltung Text- oder Mediennachrichten an den Benutzer senden. Nach Ablauf des 24-Stunden-Fensters muss die Unterhaltung erneut eingeleitet werden. Weitere Informationen zu Unterhaltungen finden Sie in der Definition auf der WhatsApp Business-Platform.

Authentifizieren des Clients

Für die Authentifizierung eines Messagingclients stehen verschiedene Optionen zur Verfügung:

Um einen Client zu authentifizieren, instanziieren Sie NotificationMessagesClient oder MessageTemplateClient mit Ihrer Verbindungszeichenfolge. Sie können den Client auch mit einem beliebigen benutzerdefinierten HTTP-Client initialisieren, der die com.azure.core.http.HttpClient-Schnittstelle implementiert.

Der Einfachheit halber verwendet dieser Artikel eine Verbindungszeichenfolge zur Authentifizierung. In Produktionsumgebungen wird empfohlen, Dienstprinzipale zu verwenden.

Rufen Sie die Verbindungszeichenfolge aus Ihrer Azure Communication Services-Ressource im Azure-Portal ab. Navigieren Sie auf der linken Seite zur Registerkarte Keys. Kopieren Sie das Feld Connection string für Primary key. Die Verbindungszeichenfolge hat das Format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Screenshot einer Azure Communication Services-Ressource im Azure-Portal, die das Feld „Verbindungszeichenfolge“ im Abschnitt „Primärschlüssel“ anzeigt.

Legen Sie die Umgebungsvariable COMMUNICATION_SERVICES_CONNECTION_STRING auf den Wert Ihrer Verbindungszeichenfolge fest.
Öffnen Sie ein Konsolenfenster, und geben Sie den folgenden Befehl ein:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Weitere Informationen zum Festlegen einer Umgebungsvariablen für Ihr System finden Sie in den Schritten unter Speichern der Verbindungszeichenfolge in einer Umgebungsvariablen.

Zum Instanziieren von NotificationMessagesClient fügen Sie der main-Methode den folgenden Code hinzu:

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

Festlegen der Kanalregistrierungs-ID

Die GUID der Kanalregistrierungs-ID wurde während der Kanalregistrierung erstellt. Sie können diese auf der Registerkarte „Kanäle“ im Portal Ihrer Azure Communication Services-Ressource finden.

Screenshot einer Azure Communication Services-Ressource im Azure-Portal, auf der die Registerkarte „Kanäle“ angezeigt wird. Besonderes Augenmerk wird auf die Kopierfunktion des Feldes „Kanal-ID“ gelegt.

Weisen Sie diese der Variablen „channelRegistrationId“ zu.

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

Festlegen der Empfängerliste

Sie müssen eine echte Telefonnummer angeben, die einem WhatsApp-Konto zugeordnet ist. Dieses WhatsApp-Konto empfängt die in diesem Artikel gesendeten Text- und Mediennachrichten. Bei diesem Artikel kann es sich bei dieser Telefonnummer um Ihre persönliche Telefonnummer handeln.

Die Empfängertelefonnummer kann nicht die geschäftliche Telefonnummer (Sender-ID) sein, die der WhatsApp-Kanalregistrierung zugeordnet ist. Die Sender-ID wird als Sender der Text- und Mediennachrichten angezeigt, die an den Empfänger gesendet werden.

Die Telefonnummer sollte die Landeskennzahl beinhalten. Weitere Informationen zur Formatierung von Telefonnummern finden Sie in der WhatsApp-Dokumentation für Telefonnummernformate.

Hinweis

In der Empfängerliste wird derzeit lediglich eine Telefonnummer unterstützt.

Erstellen Sie die Empfängerliste folgendermaßen:

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

Beispiel:

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

Senden einer Textnachricht an WhatsApp-Benutzer

Messages SDK ermöglicht Contoso das Senden von WhatsApp-Textnachrichten, die von WhatsApp-Nutzern initiiert wurden. Zum Senden von Textnachrichten sind die folgenden Angaben erforderlich:

In diesem Beispiel antworten wir per WhatsApp mit dem Text "Thanks for your feedback.\n From Notification Messaging SDK.".

Wichtig

Um eine SMS an einen WhatsApp-Benutzer zu senden, muss der WhatsApp-Benutzer zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Stellen Sie die SMS zusammen, und senden Sie sie:

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

Senden einer Bildmediennachricht an WhatsApp-Benutzende

Mit dem Messages SDK kann Contoso Mediennachrichten (Bild-, Video-, Audio- oder Dokumentnachrichten) an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Wichtig

Ab SDK-Version 1.1.0 ist MediaNotificationContent für Bilder veraltet. Es wird empfohlen, für den Bildversand ImageNotificationContent zu nutzen. Informieren Sie sich für andere Medientypen wie DocumentNotificationContent, VideoNotificationContent und AudioNotificationContent über andere inhaltsspezifische Klassen.

Wichtig

Um eine Bildnachricht an WhatsApp-Benutzende zu senden, müssen WhatsApp-Benutzende zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Stellen Sie die Bildnachricht zusammen, und senden Sie sie:

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

Senden einer Videomediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso Mediennachrichten (Bild-, Video-, Audio- oder Dokumentnachrichten) an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Wichtig

Um eine Videonachricht an einen WhatsApp-Benutzer zu senden, muss der WhatsApp-Benutzer zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Zusammenstellen und Senden der Videonachricht:

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

Senden einer Audiomediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso Mediennachrichten (Bild-, Video-, Audio- oder Dokumentnachrichten) an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Wichtig

Um eine Audionachricht an WhatsApp-Benutzende zu senden, müssen WhatsApp-Benutzende zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Zusammenstellen und Senden der Audionachricht:

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

Senden einer Dokumentmediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso Mediennachrichten (Bild-, Video-, Audio- oder Dokumentnachrichten) an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Wichtig

Um Dokumentnachricht SMS an einen WhatsApp-Benutzer zu senden, muss der WhatsApp-Benutzer zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Zusammenstellen und Senden der Dokumentnachricht:

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

Ausführen des Codes

  1. Öffnen Sie das Verzeichnis, das die pom.xml-Datei enthält, und kompilieren Sie das Projekt mithilfe des mvn-Befehls.

    mvn compile
    
  2. Führen Sie die App aus, indem Sie den folgenden mvn-Befehl ausführen.

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

Vollständiger Beispielcode

Finden Sie die endgültige Version auf GitHub in der Azure Messages-Clientbibliothek für Java.

Voraussetzungen

Einrichten

Erstellen einer neuen Node.js-Anwendung

  1. Erstellen Sie ein neues Verzeichnis für Ihre App, und öffnen Sie es in einem Terminal- oder Befehlsfenster.

  2. Führen Sie den folgenden Befehl aus.

    mkdir advance-messages-quickstart && cd advance-messages-quickstart
    
  3. Führen Sie den folgenden Befehl aus, um eine package.json-Datei mit den Standardeinstellungen zu erstellen.

    npm init -y
    
  4. Verwenden Sie einen Text-Editor, um im Stammverzeichnis des Projekts eine Datei mit Namen send-messages.js zu erstellen.

  5. Fügen Sie den folgenden Codeschnipsel in die send-messages.js-Datei ein.

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

Schließen Sie den folgenden Abschnitt ab, um den Quellcode für dieses Beispiel der von Ihnen erstellten send-messages.js-Datei hinzuzufügen.

Installieren des Pakets

Verwenden Sie den Befehl npm install, um das Azure Communication Services Advance Messaging SDK für JavaScript zu installieren.

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

Durch die Option --save wird die Bibliothek als Abhängigkeit in der Datei package.json aufgeführt.

Codebeispiele

Befolgen Sie diese Schritte, um die erforderlichen Codeschnipsel zur Main-Funktion Ihrer send-messages.js-Datei hinzuzufügen.

Einrichten des Nachrichtenversands zwischen Geschäfts- und WhatsApp-Benutzern

Unterhaltungen zwischen einem WhatsApp Business-Konto und WhatsApp-Benutzer*innen kann auf eine von zwei Arten initiiert werden:

  • Das Unternehmen sendet eine Nachrichtenvorlage an die WhatsApp-Benutzer*innen.
  • Die WhatsApp-Benutzer*innen senden eine beliebige Nachricht an die Geschäftsnummer.

Unabhängig davon, wie die Unterhaltung gestartet wurde, kann ein Unternehmen Vorlagennachrichten nur senden, bis der Benutzer eine Nachricht an das Unternehmen sendet. Erst nachdem der Benutzer eine Nachricht an das Unternehmen gesendet hat, darf das Unternehmen während der aktiven Unterhaltung Text- oder Mediennachrichten an den Benutzer senden. Nach Ablauf des 24-Stunden-Fensters muss die Unterhaltung erneut eingeleitet werden. Weitere Informationen zu Unterhaltungen finden Sie in der Definition auf der WhatsApp Business-Platform.

Authentifizieren des Clients

Im folgenden Code wird die Verbindungszeichenfolge für die Ressource aus einer Umgebungsvariablen namens COMMUNICATION_SERVICES_CONNECTION_STRING mithilfe des dotenv-Pakets abgerufen.

Der Einfachheit halber verwendet dieser Artikel eine Verbindungszeichenfolge zur Authentifizierung. In Produktionsumgebungen wird empfohlen, Dienstprinzipale zu verwenden.

Rufen Sie die Verbindungszeichenfolge aus Ihrer Azure Communication Services-Ressource im Azure-Portal ab. Navigieren Sie auf der linken Seite zur Registerkarte Keys. Kopieren Sie das Feld Connection string für Primary key. Die Verbindungszeichenfolge hat das Format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Screenshot einer Azure Communication Services-Ressource im Azure-Portal, die das Feld „Verbindungszeichenfolge“ im Abschnitt „Primärschlüssel“ anzeigt.

Legen Sie die Umgebungsvariable COMMUNICATION_SERVICES_CONNECTION_STRING auf den Wert Ihrer Verbindungszeichenfolge fest.
Öffnen Sie ein Konsolenfenster, und geben Sie den folgenden Befehl ein:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Weitere Informationen zum Festlegen einer Umgebungsvariablen für Ihr System finden Sie in den Schritten unter Speichern der Verbindungszeichenfolge in einer Umgebungsvariablen.

Zum Instanziieren einer NotificationClient-Instanz, fügen Sie der Main-Methode den folgenden Code hinzu:

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

Festlegen der Kanalregistrierungs-ID

Die GUID der Kanalregistrierungs-ID wurde während der Kanalregistrierung erstellt. Sie können diese auf der Registerkarte „Kanäle“ im Portal Ihrer Azure Communication Services-Ressource finden.

Screenshot einer Azure Communication Services-Ressource im Azure-Portal, auf der die Registerkarte „Kanäle“ angezeigt wird. Besonderes Augenmerk wird auf die Kopierfunktion des Feldes „Kanal-ID“ gelegt.

Weisen Sie diese der Variablen „channelRegistrationId“ zu.

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

Festlegen der Empfängerliste

Sie müssen eine echte Telefonnummer angeben, die einem WhatsApp-Konto zugeordnet ist. Dieses WhatsApp-Konto empfängt die In diesem Artikel gesendeten Vorlagen-, Text- und Mediennachrichten. Bei diesem Artikel kann es sich bei dieser Telefonnummer um Ihre persönliche Telefonnummer handeln.

Die Empfängertelefonnummer kann nicht die geschäftliche Telefonnummer (Sender-ID) sein, die der WhatsApp-Kanalregistrierung zugeordnet ist. Die Sender-ID wird als Sender der Text- und Mediennachrichten angezeigt, die an den Empfänger gesendet werden.

Die Telefonnummer sollte die Landeskennzahl beinhalten. Weitere Informationen zur Formatierung von Telefonnummern finden Sie in der WhatsApp-Dokumentation für Telefonnummernformate.

Hinweis

In der Empfängerliste wird derzeit lediglich eine Telefonnummer unterstützt.

Erstellen Sie die Empfängerliste folgendermaßen:

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

Beispiel:

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

Wichtig

Um eine Nachricht an WhatsApp-Benutzende zu senden, müssen WhatsApp-Benutzende zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Senden einer Textnachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso WhatsApp-SMS-Nachrichten senden, wenn sie von WhatsApp-Benutzenden initiiert werden. So senden Sie SMS:

In diesem Beispiel antworten wir per WhatsApp mit dem Text "Thanks for your feedback.\n From Notification Messaging SDK.".

Stellen Sie die SMS zusammen, und senden Sie sie:

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

Senden einer Bildmediennachricht an WhatsApp-Benutzende

Mit dem Messages SDK kann Contoso Mediennachrichten (Bild-, Video-, Audio- oder Dokumentnachrichten) an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Wichtig

Ab SDK-Version 2.0.0 ist MediaNotificationContent für Bilder veraltet. Es wird empfohlen, für den Bildversand ImageNotificationContent zu nutzen. Informieren Sie sich für andere Medientypen wie DocumentNotificationContent, VideoNotificationContent und AudioNotificationContent über andere inhaltsspezifische Klassen.

Um eine Bildnachricht zu senden, geben Sie eine URL zu einem Bild an. Zum Beispiel:

const url = "https://example.com/image.jpg";

Stellen Sie die Mediennachricht zusammen, und senden Sie sie:

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

Senden einer Videomediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso Mediennachrichten (Bild-, Video-, Audio- oder Dokumentnachrichten) an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Um eine Videonachricht zu senden, geben Sie eine URL zu einem Video an. Beispiel:

const url = "https://example.com/video.mp4";

Zusammenstellen und Senden der Videonachricht:

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

Senden einer Audiomediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso Mediennachrichten (Bild-, Video-, Audio- oder Dokumentnachrichten) an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Um eine Audionachricht zu senden, geben Sie eine URL zu einer Audiodatei an. Beispiel:

const url = "https://example.com/audio.mp3";

Zusammenstellen und Senden der Audionachricht:

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

Senden einer Dokumentmediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso Mediennachrichten (Bild-, Video-, Audio- oder Dokumentnachrichten) an WhatsApp-Benutzende senden. Zum Senden einer eingebetteten Mediennachricht benötigen Sie Folgendes:

Um eine Dokumentnachricht zu senden, geben Sie eine URL zu einem Dokument an. Beispiel:

const url = "https://example.com/document.pdf";

Zusammenstellen und Senden der Dokumentnachricht:

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

Ausführen des Codes

Verwenden Sie den node-Befehl, um den Code auszuführen, den Sie der Datei send-messages.js hinzugefügt haben.

node ./send-messages.js

Vollständiger Beispielcode

Suchen Sie den abgeschlossenen Code in GitHub Messages Services-Clientbibliotheksbeispielen für JavaScript.

Voraussetzungen

Einrichten

Erstellen einer neuen Python-Anwendung

Erstellen Sie in einem Terminal- oder Konsolenfenster einen neuen Ordner für Ihre Anwendung, und öffnen Sie diesen.

mkdir messages-quickstart && cd messages-quickstart

Installieren des Pakets

Verwenden Sie die Azure Communication Messages-Clientbibliothek für Python, Version 1.1.0 oder höher.

Führen Sie in einer Konsoleneingabeaufforderung den folgenden Befehl aus:

pip install azure-communication-messages

Für „InteractiveMessages“, „Reactions“ und „Stickers“ verwenden Sie die nachfolgende Betaversion:

pip install azure-communication-messages==1.2.0b1

Einrichten des App-Frameworks

Erstellen Sie eine neue Datei namens messages-quickstart.py, und fügen Sie die grundlegende Programmstruktur hinzu.

type nul > messages-quickstart.py   

Basic Programmstruktur

import os

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

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

Objektmodell

Die folgenden Klassen und Schnittstellen dienen zur Behandlung einiger der wichtigsten Features des Azure Communication Services Messages SDK für Python.

Klassenname Beschreibung
NotificationMessagesClient Stellt eine Verbindung mit Ihrer Azure Communication Services-Ressource her. Sie sendet die Nachrichten.
MessageTemplate Definiert die verwendete Vorlage und den Inhalt der Vorlageneigenschaften für Ihre Nachricht.
TemplateNotificationContent Definiert das „Wer“ und das „Was“ der Nachrichtenvorlage, die Sie senden möchten.
TextNotificationContent Definiert das „Wer“ und das „Was“ der SMS, die Sie senden möchten.
ImageNotificationContent Definiert das „Wer“ und das „Was“ der Bildmediennachricht, die Sie senden möchten.
DocumentNotificationContent Definiert das „Wer“ und das „Was“ der Dokumentmediennachricht, die Sie senden möchten.
VideoNotificationContent Definiert das „Wer“ und das „Was“ der Videomediennachricht, die Sie senden möchten.
AudioNotificationContent Definiert das „Wer“ und das „Was“ der Audiomediennachricht, die Sie senden möchten.

Hinweis

Weitere Informationen finden Sie in der Referenz zum Azure SDK für Python unter messages (Paket).

Allgemeine Konfiguration

Führen Sie die folgenden Schritte aus, um dem Python-Programm messages-quickstart.py die erforderlichen Codeschnipsel hinzuzufügen.

Authentifizieren des Clients

Gesendete Nachrichten verwenden NotificationMessagesClient. NotificationMessagesClient authentifiziert sich mithilfe Ihrer Verbindungszeichenfolge, die von der Azure Communication Services-Ressource im Azure-Portal abgerufen wurde. F

Weitere Informationen zu Verbindungszeichenfolgen finden Sie unter access-your-connection-strings-and-service-endpoints.

Rufen Sie die Azure Communication Resource-Verbindungszeichenfolge aus dem Azure-Portal ab, wie im Screenshot angegeben. Navigieren Sie auf der linken Seite zur Registerkarte Keys. Kopieren Sie das Feld Connection string für den Primärschlüssel. Die Verbindungszeichenfolge hat das Format endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Screenshot einer Azure Communication Services-Ressource im Azure-Portal, die das Feld „Primärschlüssel“ im Abschnitt „Schlüssel“ anzeigt.

Legen Sie die Umgebungsvariable COMMUNICATION_SERVICES_CONNECTION_STRING auf den Wert Ihrer Verbindungszeichenfolge fest.
Öffnen Sie ein Konsolenfenster, und geben Sie den folgenden Befehl ein:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Nachdem Sie die Umgebungsvariable hinzugefügt haben, müssen Sie unter Umständen alle ausgeführten Programme neu starten, die die Umgebungsvariable lesen müssen, z. B. das Konsolenfenster. Wenn Sie beispielsweise Visual Studio als Editor verwenden, müssen Sie Visual Studio neu starten, bevor Sie das Beispiel ausführen.

Weitere Informationen zum Festlegen einer Umgebungsvariablen für Ihr System finden Sie in den Schritten unter Speichern der Verbindungszeichenfolge in einer Umgebungsvariablen.

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

Festlegen der Kanalregistrierungs-ID

Sie haben die GUID der Kanalregistrierungs-ID während der Kanalregistrierung erstellt. Sie können diese auf der Registerkarte Kanäle im Portal Ihrer Azure Communication Services-Ressource finden.

Screenshot einer Azure Communication Services-Ressource im Azure-Portal, auf der die Registerkarte „Kanäle“ angezeigt wird. Besonderes Augenmerk wird auf die Kopierfunktion des Feldes „Kanal-ID“ gelegt.

Weisen Sie diese der Variablen „channelRegistrationId“ zu.

    channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")

Festlegen der Empfängerliste

Sie müssen eine aktive Telefonnummer angeben, die einem WhatsApp-Konto zugeordnet ist. Dieses WhatsApp-Konto empfängt die In diesem Artikel gesendeten Vorlagen-, Text- und Mediennachrichten.

In diesem Beispiel können Sie Ihre persönliche Telefonnummer verwenden.

Die Empfängertelefonnummer kann nicht die geschäftliche Telefonnummer (Sender-ID) sein, die der WhatsApp-Kanalregistrierung zugeordnet ist. Die Sender-ID wird als Sender der Text- und Mediennachrichten angezeigt, die an den Empfänger gesendet werden.

Die Telefonnummer muss die Landeskennzahl beinhalten. Weitere Informationen zur Formatierung von Telefonnummern finden Sie in der WhatsApp-Dokumentation für Telefonnummernformate.

Hinweis

In der Empfängerliste wird derzeit lediglich eine Telefonnummer unterstützt.

Legen Sie die Empfängerliste folgendermaßen fest:

    phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")

Anwendungsbeispiel:

    # Example only
    to=[self.phone_number],

Einrichten des Nachrichtenversands zwischen Geschäfts- und WhatsApp-Benutzern

Unterhaltungen zwischen einem WhatsApp Business-Konto und WhatsApp-Benutzer*innen kann auf eine von zwei Arten initiiert werden:

  • Das Unternehmen sendet eine Nachrichtenvorlage an die WhatsApp-Benutzer*innen.
  • Die WhatsApp-Benutzer*innen senden eine beliebige Nachricht an die Geschäftsnummer.

Ein Unternehmen kann keine interaktive Unterhaltung initiieren. Ein Unternehmen kann interaktive Nachrichten nur als Antwort auf interaktive Nachrichten von Benutzenden senden. Das Unternehmen kann nur während der aktiven Unterhaltung interaktive Nachrichten an Benutzende senden. Sobald das 24-Stunden-Fenster einer Unterhaltung abgelaufen ist, können nur Benutzende die interaktive Unterhaltung neu starten. Weitere Informationen zu Unterhaltungen finden Sie in der Definition auf der WhatsApp Business Platform.

Um eine interaktive Unterhaltung von ihrem persönlichen WhatsApp-Konto aus zu starten, senden Sie eine Nachricht an Ihre Geschäftsnummer (Sender-ID).

Eine im Web angezeigte WhatsApp-Konversation mit einer Nutzernachricht, die an die Nummer des WhatsApp-Business-Kontos gesendet wurde.

Codebeispiele

Führen Sie die folgenden Schritte aus, um dem Python-Programm „messages-quickstart.py“ die erforderlichen Codeschnipsel hinzuzufügen.

Senden einer Textnachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso WhatsApp-SMS-Nachrichten senden, wenn sie von WhatsApp-Benutzenden initiiert werden. So senden Sie SMS:

Wichtig

Um eine SMS an einen WhatsApp-Benutzer zu senden, muss der WhatsApp-Benutzer zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

In diesem Beispiel antworten wir per WhatsApp mit dem Text "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")

Um send_text_message() auszuführen, aktualisieren Sie die main-Methode.

    #Calling send_text_message()
    messages.send_text_message()

Senden einer Bildmediennachricht an WhatsApp-Benutzende

Mit dem Messages SDK kann Contoso WhatsApp-Bildnachrichten an WhatsApp-Benutzende senden. So senden Sie Nachrichten mit eingebetteten Bildern:

Wichtig

Um eine SMS an einen WhatsApp-Benutzer zu senden, muss der WhatsApp-Benutzer zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Ein Beispiel für eine media_uri-Instanz, die zum Senden einer WhatsApp-Mediennachricht verwendet wird.

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

Um send_text_message() auszuführen, aktualisieren Sie die main-Methode.

    # Calling send_image_message()
    messages.send_image_message()

Senden einer Dokumentmediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso WhatsApp-Dokumentnachrichten an WhatsApp-Benutzende senden. So senden Sie Nachrichten mit eingebetteten Dokumenten:

Wichtig

Um Dokumentnachricht SMS an einen WhatsApp-Benutzer zu senden, muss der WhatsApp-Benutzer zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Ein Beispiel für eine media_uri-Instanz, die zum Senden einer WhatsApp-Mediennachricht verwendet wird.

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

Um send_text_message() auszuführen, aktualisieren Sie die main-Methode.

    # Calling send_image_message()
    messages.send_image_message()

Senden einer Audiomediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso WhatsApp-Bildnachrichten an WhatsApp-Benutzende senden. So senden Sie Nachrichten mit eingebetteten Audiodateien:

Wichtig

Um eine Audionachricht an WhatsApp-Benutzende zu senden, müssen WhatsApp-Benutzende zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Ein Beispiel für eine media_uri-Instanz, die zum Senden einer WhatsApp-Mediennachricht verwendet wird.

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

Um send_text_message() auszuführen, aktualisieren Sie die main-Methode.

    # Calling send_image_message()
    messages.send_image_message()

Senden einer Videomediennachricht an WhatsApp-Benutzer

Mit dem Messages SDK kann Contoso WhatsApp-Videonachrichten an WhatsApp-Benutzende senden. So senden Sie Nachrichten mit eingebetteten Videos:

Wichtig

Um eine Videonachricht an einen WhatsApp-Benutzer zu senden, muss der WhatsApp-Benutzer zuerst eine Nachricht an das WhatsApp Business-Konto senden. Weitere Informationen finden Sie unter Einrichten des Nachrichtenversands zwischen Unternehmens- und WhatsApp-Benutzer*innen.

Ein Beispiel für eine media_uri-Instanz, die zum Senden einer WhatsApp-Mediennachricht verwendet wird.

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

Um send_text_message() auszuführen, aktualisieren Sie die main-Methode.

    # Calling send_image_message()
    messages.send_image_message()

Ausführen des Codes

Vergewissern Sie sich, dass Sie sich in dem Verzeichnis befinden, in dem sich die messages-quickstart.py-Datei befindet, um den Code auszuführen.

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

Vollständiger Beispielcode

Hinweis

Ersetzen Sie alle Platzhaltervariablen im Beispielcode durch Ihre Werte.

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

Weitere Beispiele

Sie können andere Beispielcodes auf GitHub für Python Messages SDK überprüfen und herunterladen.

Nächste Schritte