Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
- WhatsApp Business-Konto, das bei Ihrer Azure Communication Services-Ressource registriert ist.
- Aktive WhatsApp-Telefonnummer zum Empfangen von Nachrichten.
- .NET-Entwicklungsumgebung, z. B. Visual Studio, Visual Studio Code oder die .NET-CLI
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.
- Öffnen Sie den NuGet-Paket-Manager unter
Project
>Manage NuGet Packages...
. - Suchen Sie nach dem Paket
Azure.Communication.Messages
. - 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 Sie den Client.
- Legen Sie die Kanalregistrierungs-ID fest.
- Legen Sie die Empfängerliste fest.
- Starten Sie den Nachrichtenversand zwischen Geschäfts- und WhatsApp-Benutzenden.
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}
.
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.
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).
Codebeispiele
Befolgen Sie diese Schritte, um die erforderlichen Codeschnipsel zur Main-Funktion Ihrer Program.cs
-Datei hinzuzufügen.
- Senden einer SMS an WhatsApp-Benutzende.
- Senden einer Bildmediennachricht an WhatsApp-Benutzende.
- Senden einer Dokumentmediennachricht an WhatsApp-Benutzende.
- Senden einer Audiomediennachricht an WhatsApp-Benutzende.
- Senden einer Videomediennachricht an WhatsApp-Benutzende.
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:
- Authentifizierter NotificationMessagesClient
- WhatsApp-Kanal-ID
- Telefonnummer des Empfängers im E16-Format
- Nachrichtentext/Text, der gesendet werden soll
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:
- Authentifizierte NotificationMessagesClient-Instanz.
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URI der Bildmedien.
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:
- Authentifizierte NotificationMessagesClient-Instanz.
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URI der Dokumentmedien.
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:
- Authentifizierte NotificationMessagesClient-Instanz.
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URI der Videomedien.
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:
- Authentifizierte NotificationMessagesClient-Instanz.
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URI der Audiomedien.
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.
- Um den Code zu kompilieren, drücken Sie STRG+F7.
- 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
- WhatsApp Business-Konto, das bei Ihrer Azure Communication Services-Ressource registriert ist.
- Aktive WhatsApp-Telefonnummer zum Empfangen von Nachrichten.
- Java Development Kit (JDK) Version 8 oder höher.
- Apache Maven.
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.
- Starten Sie den Nachrichtenversand zwischen Geschäfts- und WhatsApp-Benutzenden.
- Authentifizieren Sie den Client.
- Legen Sie die Kanalregistrierungs-ID fest.
- Legen Sie die Empfängerliste fest.
- Senden einer Textnachricht an WhatsApp-Benutzer
- Senden einer Bildmediennachricht an WhatsApp-Benutzende
- Senden einer Dokumentmediennachricht an WhatsApp-Benutzende
- Senden einer Audiomediennachricht an WhatsApp-Benutzende
- Senden einer Videomediennachricht an WhatsApp-Benutzende
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}
.
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.
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:
- WhatsApp-Kanal-ID
- Empfängertelefonnummer im E16-Format
- Nachrichtentext/Text, der gesendet werden soll
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:
- WhatsApp-Kanal-ID
- Empfängertelefonnummer im E16-Format
- URL der Bildmedien
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URL der Videomedien.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URL der Audiomedien.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URL der Dokumentmedien.
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
Öffnen Sie das Verzeichnis, das die
pom.xml
-Datei enthält, und kompilieren Sie das Projekt mithilfe desmvn
-Befehls.mvn compile
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
- WhatsApp Business-Konto, das bei Ihrer Azure Communication Services-Ressource registriert ist.
- Aktive WhatsApp-Telefonnummer zum Empfangen von Nachrichten.
- Node.js, Active LTS- und Maintenance LTS-Versionen (8.11.1 und 10.14.1 empfohlen).
-
Node.js, Active LTS- und Maintenance LTS-Versionen (8.11.1 und 10.14.1 empfohlen)
- Führen Sie in einem Terminal- oder Befehlsfenster
node --version
aus, um sich zu vergewissern, dass Node.js installiert ist.
- Führen Sie in einem Terminal- oder Befehlsfenster
Einrichten
Erstellen einer neuen Node.js-Anwendung
Erstellen Sie ein neues Verzeichnis für Ihre App, und öffnen Sie es in einem Terminal- oder Befehlsfenster.
Führen Sie den folgenden Befehl aus.
mkdir advance-messages-quickstart && cd advance-messages-quickstart
Führen Sie den folgenden Befehl aus, um eine
package.json
-Datei mit den Standardeinstellungen zu erstellen.npm init -y
Verwenden Sie einen Text-Editor, um im Stammverzeichnis des Projekts eine Datei mit Namen
send-messages.js
zu erstellen.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.
- Starten Sie den Nachrichtenversand zwischen Geschäfts- und WhatsApp-Benutzenden.
- Authentifizieren Sie den Client.
- Legen Sie die Kanalregistrierungs-ID fest.
- Legen Sie die Empfängerliste fest.
- Senden einer SMS an WhatsApp-Benutzende.
- Senden einer Bildmediennachricht an WhatsApp-Benutzende.
- Senden einer Dokumentmediennachricht an WhatsApp-Benutzende.
- Senden einer Audiomediennachricht an WhatsApp-Benutzende.
- Senden einer Videomediennachricht an WhatsApp-Benutzende.
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}
.
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.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- Nachrichtentext/Text, der gesendet werden soll
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URL der Bildmedien.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URL des Videos.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URL der Audiomedien.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- URL der Dokumentmedien.
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
WhatsApp Business-Konto, das bei Ihrer Azure Communication Services-Ressource registriert ist.
Aktive WhatsApp-Telefonnummer zum Empfangen von Nachrichten.
Python 3.7 oder höher für Ihr Betriebssystem
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 Sie den Client.
- Legen Sie die Kanalregistrierungs-ID fest.
- Legen Sie die Empfängerliste fest.
- Starten Sie den Nachrichtenversand zwischen Geschäfts- und WhatsApp-Benutzenden.
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}
.
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.
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).
Codebeispiele
Führen Sie die folgenden Schritte aus, um dem Python-Programm „messages-quickstart.py“ die erforderlichen Codeschnipsel hinzuzufügen.
- Senden einer SMS an WhatsApp-Benutzende.
- Senden einer Bildmediennachricht an WhatsApp-Benutzende.
- Senden einer Dokumentmediennachricht an WhatsApp-Benutzende.
- Senden einer Audiomediennachricht an WhatsApp-Benutzende.
- Senden einer Videomediennachricht an WhatsApp-Benutzende.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- Nachrichtentext/Text, der gesendet werden soll
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- MediaUri des Bilds.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- MediaUri des Dokuments.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- MediaUri des Audioinhalts.
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:
- WhatsApp-Kanal-ID.
- Empfängertelefonnummer im E16-Format.
- MediaUri des 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.