WhatsApp-berichten verzenden met geavanceerde berichten
Met Azure Communication Services kunt u WhatsApp-berichten verzenden en ontvangen. In dit artikel wordt beschreven hoe u uw app integreert met azure Communication Advanced Messages SDK om WhatsApp-berichten te verzenden en te ontvangen. Voor het voltooien van dit artikel worden een kleine kosten van een paar cent of minder in uw Azure-account in rekening gebracht.
Vereisten
- WhatsApp Business-account dat is geregistreerd bij uw Azure Communication Services-resource.
- Actief WhatsApp-telefoonnummer om berichten te ontvangen.
- .NET-ontwikkelomgeving, zoals Visual Studio, Visual Studio Code of .NET CLI.
Omgeving instellen
Het .NET-project maken
Als u uw project wilt maken, volgt u de zelfstudie bij Een .NET-consoletoepassing maken met behulp van Visual Studio.
Druk op Ctrl+F7 om uw code te compileren.
Het pakket installeren
Installeer het NuGet-pakket Azure.Communication.Messages in uw C#-project.
- Open de NuGet-Pakketbeheer op
Project
>Manage NuGet Packages...
. - Zoek het pakket
Azure.Communication.Messages
. - Installeer de nieuwste versie.
Stel het app-framework in
Open het bestand Program.cs
in een teksteditor.
Vervang de inhoud van Program.cs
door de volgende 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
}
}
}
Als u de geavanceerde berichtenfuncties wilt gebruiken, voegt u een using
instructie toe om de Azure.Communication.Messages
naamruimte op te nemen.
using Azure.Communication.Messages;
Objectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Advance Messaging SDK voor .NET.
Klassenaam | Beschrijving |
---|---|
NotificationMessagesClient |
Maakt verbinding met uw Azure Communication Services-resource. De berichten worden verzonden. |
MessageTemplate |
Hiermee definieert u welke sjabloon u gebruikt en de inhoud van de sjablooneigenschappen voor uw bericht. |
TemplateNotificationContent |
Definieert de 'wie' en het 'wat' van het sjabloonbericht dat u wilt verzenden. |
TextNotificationContent |
Definieert de 'wie' en de 'wat' van het sms-bericht dat u wilt verzenden. |
ImageNotificationContent |
Definieert de 'wie' en het 'wat' van het bericht van de afbeeldingsmedia dat u wilt verzenden. |
DocumentNotificationContent |
Definieert de 'wie' en het 'wat' van het documentmediabericht dat u wilt verzenden. |
VideoNotificationContent |
Definieert de 'wie' en het 'wat' van het videomediabericht dat u wilt verzenden. |
AudioNotificationContent |
Definieert de 'wie' en het 'wat' van het audiomediabericht dat u wilt verzenden. |
Notitie
Zie de Azure SDK voor .NET reference Azure.Communication.Messages Namespace voor meer informatie.
Algemene configuratie
Volg deze stappen om vereiste codefragmenten toe te voegen aan het python-programma messages-quickstart.py.
- Verifieer de client.
- Stel de kanaalregistratie-id in.
- Adressenlijst instellen.
- Begin met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker.
De client verifiëren
De Messages SDK gebruikt de NotificationMessagesClient
app om berichten te verzenden. De NotificationMessagesClient
methode wordt geverifieerd met behulp van uw verbindingsreeks verkregen uit de Azure Communication Services-resource in Azure Portal. Zie access-your-connection-strings-and-service-endpoints voor meer informatie over verbindingsreeks s.
Voor het gemak gebruikt deze quickstart een verbindingsreeks om te verifiëren. In productieomgevingen raden we u aan om service-principals te gebruiken.
Haal de verbindingsreeks op uit uw Azure Communication Services-resource in Azure Portal. Ga aan de linkerkant naar het Keys
tabblad. Kopieer het Connection string
veld voor de primaire sleutel. De verbindingsreeks heeft de indelingendpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Stel de omgevingsvariabele COMMUNICATION_SERVICES_CONNECTION_STRING
in op de waarde van uw verbindingsreeks.
Open een consolevenster en voer de volgende opdracht in:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Nadat u de omgevingsvariabele hebt toegevoegd, moet u mogelijk alle actieve programma's opnieuw opstarten die de omgevingsvariabele moeten lezen, inclusief het consolevenster. Als u Visual Studio bijvoorbeeld gebruikt als editor, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.
Volg de stappen in Store your verbindingsreeks in een omgevingsvariabele voor meer informatie over het instellen van een omgevingsvariabele voor uw systeem.
Als u een NotificationMessagesClient
instantie wilt maken, voegt u de volgende code toe aan de Main
methode:
// Retrieve connection string from environment variable
string connectionString =
Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
// Instantiate the client
var notificationMessagesClient = new NotificationMessagesClient(connectionString);
Kanaalregistratie-id instellen
U hebt de GUID van de kanaalregistratie-id gemaakt tijdens de kanaalregistratie. Zoek deze in de portal op het tabblad Kanalen van uw Azure Communication Services-resource.
Wijs deze toe aan een variabele met de naam channelRegistrationId.
var channelRegistrationId = new Guid("<your channel registration ID GUID>");
Adressenlijst instellen
U moet een actief telefoonnummer opgeven dat is gekoppeld aan een WhatsApp-account. Dit WhatsApp-account ontvangt de sjabloon, tekst en mediaberichten die in deze quickstart worden verzonden.
In dit voorbeeld kunt u uw persoonlijke telefoonnummer gebruiken.
Het telefoonnummer van de geadresseerde kan niet het zakelijke telefoonnummer (afzender-id) zijn dat is gekoppeld aan de WhatsApp-kanaalregistratie. De afzender-id wordt weergegeven als de afzender van de tekst- en mediaberichten die naar de geadresseerde worden verzonden.
Het telefoonnummer moet het landnummer bevatten. Zie de WhatsApp-documentatie voor telefoonnummernotaties voor meer informatie over de opmaak van telefoonnummers.
Notitie
Er wordt momenteel slechts één telefoonnummer ondersteund in de lijst met geadresseerden.
Maak de adressenlijst als volgt:
var recipientList = new List<string> { "<to WhatsApp phone number>" };
Voorbeeld:
// Example only
var recipientList = new List<string> { "+14255550199" };
Beginnen met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker
Gesprekken tussen een WhatsApp Business-account en een WhatsApp-gebruiker kunnen op twee manieren worden gestart:
- Het bedrijf verzendt een sjabloonbericht naar de WhatsApp-gebruiker.
- De WhatsApp-gebruiker verzendt een bericht naar het zakelijke nummer.
Een bedrijf kan geen interactief gesprek starten. Een bedrijf kan alleen een interactief bericht verzenden nadat een bericht van de gebruiker is ontvangen. Het bedrijf kan alleen interactieve berichten naar de gebruiker verzenden tijdens het actieve gesprek. Zodra het gespreksvenster van 24 uur is verlopen, kan alleen de gebruiker het interactieve gesprek opnieuw starten. Zie de definitie op WhatsApp Business Platform voor meer informatie over gesprekken.
Als u een interactief gesprek wilt starten vanuit uw persoonlijke WhatsApp-account, stuurt u een bericht naar uw zakelijke nummer (afzender-id).
Codevoorbeelden
Volg deze stappen om vereiste codefragmenten toe te voegen aan de hoofdfunctie van uw Program.cs
bestand.
- Een sms-bericht verzenden naar een WhatsApp-gebruiker.
- Een mediabericht voor afbeeldingen verzenden naar een WhatsApp-gebruiker.
- Een documentmediabericht verzenden naar een WhatsApp-gebruiker.
- Een audiomediabericht verzenden naar een WhatsApp-gebruiker.
- Een videomediabericht verzenden naar een WhatsApp-gebruiker.
Belangrijk
Als u een tekst- of mediabericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Een sms-bericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso WhatsApp-sms-berichten verzenden, waarmee WhatsApp-gebruikers zijn geïnitieerd. Als u een sms-bericht wilt verzenden, hebt u het volgende nodig:
- Geverifieerde NotificationMessagesClient
- WhatsApp-kanaal-id
- Telefoonnummer van geadresseerde in E16-indeling
- Berichttekst/tekst die moet worden verzonden
In dit voorbeeld beantwoorden we de WhatsApp-gebruiker met de tekst: "Thanks for your feedback.\n From Notification Messaging SDK."
Het sms-bericht samenstellen en verzenden:
// 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);
Een mediabericht voor afbeeldingen verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso WhatsApp-mediaberichten verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- Geverifieerde NotificationMessagesClient.
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URI van de afbeeldingsmedia.
Belangrijk
Vanaf SDK-versie 1.1.0 MediaNotificationContent
wordt deze afgeschaft voor installatiekopieën. We raden u aan om afbeeldingen te ImageNotificationContent
verzenden. Verken andere inhoudsspecifieke klassen voor andere mediatypen, zoals DocumentNotificationContent
, VideoNotificationContent
en AudioNotificationContent
.
Stel het afbeeldingsbericht samen:
var imageLink = new Uri("https://example.com/image.jpg");
var imageNotificationContent = new ImageNotificationContent(channelRegistrationId, recipientList, imageLink)
{
Caption = "Check out this image."
};
Het afbeeldingsbericht verzenden:
var imageResponse = await notificationMessagesClient.SendAsync(imageNotificationContent);
Een documentmediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso WhatsApp-mediaberichten verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- Geverifieerde NotificationMessagesClient.
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URI van het documentmedia.
De documentinhoud samenstellen:
var documentLink = new Uri("https://example.com/document.pdf");
var documentNotificationContent = new DocumentNotificationContent(channelRegistrationId, recipientList, documentLink)
{
Caption = "Check out this document.",
FileName = "document.pdf"
};
Het documentbericht verzenden:
var documentResponse = await notificationMessagesClient.SendAsync(documentNotificationContent);
Een videomediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso WhatsApp-mediaberichten verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- Geverifieerde NotificationMessagesClient.
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URI van de videomedia.
Stel het videobericht samen:
var videoLink = new Uri("https://example.com/video.mp4");
var videoNotificationContent = new VideoNotificationContent(channelRegistrationId, recipientList, videoLink)
{
Caption = "Check out this video."
};
Het videobericht verzenden:
var videoResponse = await notificationMessagesClient.SendAsync(videoNotificationContent);
Een audiomediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso WhatsApp-mediaberichten verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- Geverifieerde NotificationMessagesClient.
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URI van de audiomedia.
Het audiobericht samenstellen:
var audioLink = new Uri("https://example.com/audio.mp3");
var audioNotificationContent = new AudioNotificationContent(channelRegistrationId, recipientList, audioLink);
Het audiobericht verzenden:
var audioResponse = await notificationMessagesClient.SendAsync(audioNotificationContent);
De code uitvoeren
Bouw en voer uw programma uit.
Als u een sms- of mediabericht wilt verzenden naar een WhatsApp-gebruiker, moet er een actief gesprek zijn tussen het WhatsApp Business-account en de WhatsApp-gebruiker.
Als u geen actief gesprek hebt, voegt u in dit voorbeeld een wachttijd toe tussen het verzenden van het sjabloonbericht en het verzenden van het tekstbericht. Deze extra vertraging geeft u voldoende tijd om te reageren op het bedrijf op het WhatsApp-account van de gebruiker. Ter referentie wordt in het volledige voorbeeld in voorbeeldcode om handmatige gebruikersinvoer gevraagd voordat het volgende bericht wordt verzonden.
Als dit lukt, ontvangt u drie berichten in het WhatsApp-account van de gebruiker.
- Druk op Ctrl+F7 om uw code te compileren.
- Druk op Ctrl+F5 om het programma uit te voeren zonder foutopsporing.
Volledige voorbeeldcode
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");
}
}
}
Vereisten
- WhatsApp Business-account dat is geregistreerd bij uw Azure Communication Services-resource.
- Actief WhatsApp-telefoonnummer om berichten te ontvangen.
- Java Development Kit (JDK) versie 8 of hoger.
- Apache Maven.
Omgeving instellen
Als u een omgeving wilt instellen voor het verzenden van berichten, voert u de stappen in de volgende secties uit.
Een nieuwe Java-toepassing maken
Open een terminal- of opdrachtvenster en navigeer naar de map waar u uw Java-toepassing wilt maken. Voer de volgende opdracht uit om het Java-project te genereren op basis van de maven-archetype-quickstart
sjabloon.
mvn archetype:generate -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart" -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeVersion="1.4" -DinteractiveMode="false"
Het generate
doel maakt een map met dezelfde naam als de artifactId
waarde. Onder deze map bevat de src/main/java
map de broncode van het project, de map bevat de src/test/java
testbron en het pom.xml
bestand is het Project Object Model (POM) van het project.
Het pakket installeren
Open het pom.xml
bestand in de teksteditor. Voeg het volgende afhankelijkheidselement toe aan de groep met afhankelijkheden.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-messages</artifactId>
</dependency>
Stel het app-framework in
Open /src/main/java/com/communication/quickstart/App.java
in een teksteditor, voeg importrichtlijnen toe en verwijder de System.out.println("Hello world!");
instructie:
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.
}
}
Codevoorbeelden
Volg deze stappen om vereiste codefragmenten toe te voegen aan de hoofdfunctie van uw App.java
bestand.
- Begin met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker.
- Verifieer de client.
- Stel de kanaalregistratie-id in.
- Adressenlijst instellen.
- Een sms-bericht verzenden naar een WhatsApp-gebruiker
- Een mediabericht voor afbeeldingen verzenden naar een WhatsApp-gebruiker
- Een documentmediabericht verzenden naar een WhatsApp-gebruiker
- Een audiomediabericht verzenden naar een WhatsApp-gebruiker
- Een videomediabericht verzenden naar een WhatsApp-gebruiker
Beginnen met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker
Gesprekken tussen een WhatsApp Business-account en een WhatsApp-gebruiker kunnen op twee manieren worden gestart:
- Het bedrijf verzendt een sjabloonbericht naar de WhatsApp-gebruiker.
- De WhatsApp-gebruiker verzendt een bericht naar het zakelijke nummer.
Ongeacht hoe het gesprek is gestart, kan een bedrijf alleen sjabloonberichten verzenden totdat de gebruiker een bericht naar het bedrijf verzendt. Pas nadat de gebruiker een bericht naar het bedrijf heeft verzonden, mag het bedrijf tijdens het actieve gesprek tekst- of mediaberichten naar de gebruiker verzenden. Zodra het gespreksvenster van 24 uur is verlopen, moet het gesprek opnieuw worden geïnitieerd. Zie de definitie op WhatsApp Business Platform voor meer informatie over gesprekken.
De client verifiëren
Er zijn enkele verschillende opties beschikbaar voor het verifiëren van een berichtclient:
Als u een client wilt verifiëren, instantieert u een NotificationMessagesClient
of MessageTemplateClient
met uw verbindingsreeks. U kunt de client ook initialiseren met elke aangepaste HTTP-client die de com.azure.core.http.HttpClient
interface implementeert.
Voor het gemak gebruikt deze quickstart een verbindingsreeks om te verifiëren. In productieomgevingen raden we u aan om service-principals te gebruiken.
Haal de verbindingsreeks op uit uw Azure Communication Services-resource in Azure Portal. Ga aan de linkerkant naar het Keys
tabblad. Kopieer het Connection string
veld voor de Primary key
. De verbindingsreeks heeft de indelingendpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Stel de omgevingsvariabele COMMUNICATION_SERVICES_CONNECTION_STRING
in op de waarde van uw verbindingsreeks.
Open een consolevenster en voer de volgende opdracht in:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Volg de stappen in Store your verbindingsreeks in een omgevingsvariabele voor meer informatie over het instellen van een omgevingsvariabele voor uw systeem.
Als u een NotificationMessagesClient wilt instantiëren, voegt u de volgende code toe aan de main
methode:
// 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();
Kanaalregistratie-id instellen
De GUID van de kanaalregistratie-id is gemaakt tijdens de kanaalregistratie. U kunt deze opzoeken in de portal op het tabblad Kanalen van uw Azure Communication Services-resource.
Wijs deze toe aan een variabele met de naam channelRegistrationId.
String channelRegistrationId = "<your channel registration id GUID>";
Adressenlijst instellen
U moet een echt telefoonnummer opgeven waaraan een WhatsApp-account is gekoppeld. Dit WhatsApp-account ontvangt de tekst- en mediaberichten die in deze quickstart worden verzonden. Voor deze quickstart is dit telefoonnummer mogelijk uw persoonlijke telefoonnummer.
Het telefoonnummer van de geadresseerde kan niet het zakelijke telefoonnummer (afzender-id) zijn dat is gekoppeld aan de WhatsApp-kanaalregistratie. De afzender-id wordt weergegeven als de afzender van de tekst- en mediaberichten die naar de geadresseerde worden verzonden.
Het telefoonnummer moet het landnummer bevatten. Zie de WhatsApp-documentatie voor telefoonnummernotaties voor meer informatie over de opmaak van telefoonnummers.
Notitie
Er wordt momenteel slechts één telefoonnummer ondersteund in de lijst met geadresseerden.
Maak de adressenlijst als volgt:
List<String> recipientList = new ArrayList<>();
recipientList.add("<to WhatsApp phone number>");
Voorbeeld:
// Example only
List<String> recipientList = new ArrayList<>();
recipientList.add("+14255550199");
Een sms-bericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso tekst WhatsApp-berichten verzenden, waarmee WhatsApp-gebruikers zijn geïnitieerd. Voor het verzenden van sms-berichten hieronder zijn details vereist:
- WhatsApp-kanaal-id
- Telefoonnummer van geadresseerde in E16-indeling
- Berichttekst/tekst die moet worden verzonden
In dit voorbeeld beantwoorden we de WhatsApp-gebruiker met de tekst "Thanks for your feedback.\n From Notification Messaging SDK."
Belangrijk
Als u een sms-bericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Het sms-bericht samenstellen en verzenden:
// 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());
}
Een mediabericht voor afbeeldingen verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso mediaberichten (afbeelding, video, audio of document) verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- WhatsApp-kanaal-id
- Telefoonnummer van geadresseerde in E16-indeling
- URL van de afbeeldingsmedia
Belangrijk
Vanaf SDK-versie 1.1.0 MediaNotificationContent
wordt deze afgeschaft voor installatiekopieën. We raden u aan om afbeeldingen te ImageNotificationContent
verzenden. Verken andere inhoudsspecifieke klassen voor andere mediatypen, zoals DocumentNotificationContent
, VideoNotificationContent
en AudioNotificationContent
.
Belangrijk
Als u een afbeeldingsbericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Stel het afbeeldingsbericht samen en verzend het:
// 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());
}
Een videomediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso mediaberichten (afbeelding, video, audio of document) verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URL van de videomedia.
Belangrijk
Als u een videobericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Het videobericht samenstellen en verzenden:
// 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());
}
Een audiomediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso mediaberichten (afbeelding, video, audio of document) verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URL van de audiomedia.
Belangrijk
Als u een audiobericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Het audiobericht samenstellen en verzenden:
// 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());
}
Een documentmediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso mediaberichten (afbeelding, video, audio of document) verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URL van de documentmedia.
Belangrijk
Als u een documentbericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Het documentbericht samenstellen en verzenden:
// 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());
}
De code uitvoeren
Open de map met het
pom.xml
bestand en compileer het project met behulp van demvn
opdracht.mvn compile
Voer de app uit door de volgende
mvn
opdracht uit te voeren.mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
Volledige voorbeeldcode
Zoek de voltooide code voor deze quickstart op GitHub.
Vereisten
- WhatsApp Business-account dat is geregistreerd bij uw Azure Communication Services-resource.
- Actief WhatsApp-telefoonnummer om berichten te ontvangen.
- Node.js Active LTS- en Maintenance LTS-versies (we raden 8.11.1 en 10.14.1 aan).
-
Node.js Active LTS- en Maintenance LTS-versies (8.11.1 en 10.14.1 worden aanbevolen)
- Voer in een terminal- of opdrachtvenster uit
node --version
om te controleren of Node.js is geïnstalleerd
- Voer in een terminal- of opdrachtvenster uit
Instellen
Een nieuwe Node.js-toepassing maken
Maak een nieuwe map voor uw app en open deze in een terminal- of opdrachtvenster.
Voer de volgende opdracht uit.
mkdir advance-messages-quickstart && cd advance-messages-quickstart
Voer de volgende opdracht uit om een
package.json
bestand met standaardinstellingen te maken.npm init -y
Gebruik een teksteditor om een bestand te maken dat wordt aangeroepen
send-messages.js
in de hoofdmap van het project.Voeg het volgende codefragment toe aan het bestand
send-messages.js
.async function main() { // Quickstart code goes here. } main().catch((error) => { console.error("Encountered an error while sending message: ", error); process.exit(1); });
Voltooi de volgende sectie om de broncode voor dit voorbeeld toe te voegen aan het send-messages.js
bestand dat u hebt gemaakt.
Het pakket installeren
Gebruik de npm install
opdracht om de Azure Communication Services Advance Messaging SDK voor JavaScript te installeren.
npm install @azure-rest/communication-messages --save
De optie --save
geeft de bibliotheek weer als afhankelijkheid in het package.json-bestand.
Codevoorbeelden
Volg deze stappen om vereiste codefragmenten toe te voegen aan de hoofdfunctie van uw send-messages.js
bestand.
- Begin met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker.
- Verifieer de client.
- Stel de kanaalregistratie-id in.
- Adressenlijst instellen.
- Een sms-bericht verzenden naar een WhatsApp-gebruiker.
- Een mediabericht voor afbeeldingen verzenden naar een WhatsApp-gebruiker.
- Een documentmediabericht verzenden naar een WhatsApp-gebruiker.
- Een audiomediabericht verzenden naar een WhatsApp-gebruiker.
- Een videomediabericht verzenden naar een WhatsApp-gebruiker.
Beginnen met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker
Gesprekken tussen een WhatsApp Business-account en een WhatsApp-gebruiker kunnen op twee manieren worden gestart:
- Het bedrijf verzendt een sjabloonbericht naar de WhatsApp-gebruiker.
- De WhatsApp-gebruiker verzendt een bericht naar het zakelijke nummer.
Ongeacht hoe het gesprek is gestart, kan een bedrijf alleen sjabloonberichten verzenden totdat de gebruiker een bericht naar het bedrijf verzendt. Pas nadat de gebruiker een bericht naar het bedrijf heeft verzonden, mag het bedrijf tijdens het actieve gesprek tekst- of mediaberichten naar de gebruiker verzenden. Zodra het gespreksvenster van 24 uur is verlopen, moet het gesprek opnieuw worden geïnitieerd. Zie de definitie op WhatsApp Business Platform voor meer informatie over gesprekken.
De client verifiëren
Met de volgende code wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met COMMUNICATION_SERVICES_CONNECTION_STRING
behulp van het dotenv-pakket.
Voor het gemak gebruikt deze quickstart een verbindingsreeks om te verifiëren. In productieomgevingen raden we u aan om service-principals te gebruiken.
Haal de verbindingsreeks op uit uw Azure Communication Services-resource in Azure Portal. Ga aan de linkerkant naar het Keys
tabblad. Kopieer het Connection string
veld voor de Primary key
. De verbindingsreeks heeft de indelingendpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Stel de omgevingsvariabele COMMUNICATION_SERVICES_CONNECTION_STRING
in op de waarde van uw verbindingsreeks.
Open een consolevenster en voer de volgende opdracht in:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Volg de stappen in Store your verbindingsreeks in een omgevingsvariabele voor meer informatie over het instellen van een omgevingsvariabele voor uw systeem.
Als u een NotificationClient wilt instantiëren, voegt u de volgende code toe aan de Main
methode:
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);
Kanaalregistratie-id instellen
De GUID van de kanaalregistratie-id is gemaakt tijdens de kanaalregistratie. U kunt deze opzoeken in de portal op het tabblad Kanalen van uw Azure Communication Services-resource.
Wijs deze toe aan een variabele met de naam channelRegistrationId.
const channelRegistrationId = "<your channel registration id GUID>";
Adressenlijst instellen
U moet een echt telefoonnummer opgeven waaraan een WhatsApp-account is gekoppeld. Dit WhatsApp-account ontvangt de sjabloon, tekst en mediaberichten die in deze quickstart worden verzonden. Voor deze quickstart is dit telefoonnummer mogelijk uw persoonlijke telefoonnummer.
Het telefoonnummer van de geadresseerde kan niet het zakelijke telefoonnummer (afzender-id) zijn dat is gekoppeld aan de WhatsApp-kanaalregistratie. De afzender-id wordt weergegeven als de afzender van de tekst- en mediaberichten die naar de geadresseerde worden verzonden.
Het telefoonnummer moet het landnummer bevatten. Zie de WhatsApp-documentatie voor telefoonnummernotaties voor meer informatie over de opmaak van telefoonnummers.
Notitie
Er wordt momenteel slechts één telefoonnummer ondersteund in de lijst met geadresseerden.
Maak de adressenlijst als volgt:
const recipientList = ["<to WhatsApp phone number>"];
Voorbeeld:
// Example only
const recipientList = ["+14255550199"];
Belangrijk
Als u een bericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Een sms-bericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso tekst WhatsApp-berichten verzenden wanneer ze worden gestart door een WhatsApp-gebruiker. Sms-berichten verzenden:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- Berichttekst/tekst die moet worden verzonden.
In dit voorbeeld beantwoorden we de WhatsApp-gebruiker met de tekst "Thanks for your feedback.\n From Notification Messaging SDK."
Het sms-bericht samenstellen en verzenden:
// 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");
}
Een mediabericht voor afbeeldingen verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso mediaberichten (afbeelding, video, audio of document) verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URL van de afbeeldingsmedia.
Belangrijk
Vanaf SDK-versie 2.0.0 wordt MediaNotificationContent
deze afgeschaft voor installatiekopieën. We raden u aan om afbeeldingen te ImageNotificationContent
verzenden. Verken andere inhoudsspecifieke klassen voor andere mediatypen, zoals DocumentNotificationContent
, VideoNotificationContent
en AudioNotificationContent
.
Als u een afbeeldingsbericht wilt verzenden, geeft u een URL op naar een afbeelding. Voorbeeld:
const url = "https://example.com/image.jpg";
Het mediabericht samenstellen en verzenden:
// 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");
}
Een videomediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso mediaberichten (afbeelding, video, audio of document) verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URL van de video.
Als u een videobericht wilt verzenden, geeft u een URL op naar een video. Een voorbeeld,
const url = "https://example.com/video.mp4";
Het videobericht samenstellen en verzenden:
// 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");
}
Een audiomediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso mediaberichten (afbeelding, video, audio of document) verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URL van de audiomedia.
Als u een audiobericht wilt verzenden, geeft u een URL op naar een audiobestand. Bijvoorbeeld:
const url = "https://example.com/audio.mp3";
Het audiobericht samenstellen en verzenden:
// 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");
}
Een documentmediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso mediaberichten (afbeelding, video, audio of document) verzenden naar WhatsApp-gebruikers. Als u een ingesloten mediabericht wilt verzenden, hebt u het volgende nodig:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- URL van de documentmedia.
Als u een documentbericht wilt verzenden, geeft u een URL op naar een document. Een voorbeeld,
const url = "https://example.com/document.pdf";
Het documentbericht samenstellen en verzenden:
// 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");
}
De code uitvoeren
Gebruik de knooppuntopdracht om de code uit te voeren die u aan het send-messages.js
bestand hebt toegevoegd.
node ./send-messages.js
Volledige voorbeeldcode
Zoek de voltooide code voor deze quickstart op GitHub.
Vereisten
WhatsApp Business-account dat is geregistreerd bij uw Azure Communication Services-resource.
Actief WhatsApp-telefoonnummer om berichten te ontvangen.
Python 3.7+ voor uw besturingssysteem.
Instellen
Een nieuwe Python-toepassing maken
Maak in een terminal- of consolevenster een nieuwe map voor uw toepassing en open deze.
mkdir messages-quickstart && cd messages-quickstart
Het pakket installeren
Gebruik de Azure Communication Messages-clientbibliotheek voor Python 1.1.0 of hoger.
Voer vanaf een consoleprompt de volgende opdracht uit:
pip install azure-communication-messages
Gebruik de onderstaande bètaversie voor InteractiveMessages, Reacties en Stickers:
pip install azure-communication-messages==1.2.0b1
Stel het app-framework in
Maak een nieuw bestand met de naam messages-quickstart.py
en voeg de basisprogrammastructuur toe.
type nul > messages-quickstart.py
Basisprogrammastructuur
import os
class MessagesQuickstart(object):
print("Azure Communication Services - Advanced Messages SDK Quickstart")
if __name__ == '__main__':
messages = MessagesQuickstart()
Objectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Messages SDK voor Python.
Klassenaam | Beschrijving |
---|---|
NotificationMessagesClient |
Maakt verbinding met uw Azure Communication Services-resource. De berichten worden verzonden. |
MessageTemplate |
Hiermee definieert u welke sjabloon u gebruikt en de inhoud van de sjablooneigenschappen voor uw bericht. |
TemplateNotificationContent |
Definieert de 'wie' en het 'wat' van het sjabloonbericht dat u wilt verzenden. |
TextNotificationContent |
Definieert de 'wie' en de 'wat' van het sms-bericht dat u wilt verzenden. |
ImageNotificationContent |
Definieert de 'wie' en het 'wat' van het bericht van de afbeeldingsmedia dat u wilt verzenden. |
DocumentNotificationContent |
Definieert de 'wie' en het 'wat' van het documentmediabericht dat u wilt verzenden. |
VideoNotificationContent |
Definieert de 'wie' en het 'wat' van het videomediabericht dat u wilt verzenden. |
AudioNotificationContent |
Definieert de 'wie' en het 'wat' van het audiomediabericht dat u wilt verzenden. |
Algemene configuratie
Volg deze stappen om vereiste codefragmenten toe te voegen aan het messages-quickstart.py
Python-programma.
- Verifieer de client.
- Stel de kanaalregistratie-id in.
- Adressenlijst instellen.
- Begin met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker.
De client verifiëren
Berichten die worden verzonden, worden uitgevoerd met NotificationMessagesClient. NotificationMessagesClient wordt geverifieerd met behulp van uw verbindingsreeks verkregen uit de Azure Communication Services-resource in Azure Portal. Zie access-your-connection-strings-and-service-endpoints voor meer informatie over verbindingsreeks s.
Haal Azure Communication Resource-verbindingsreeks op uit de Azure-portal, zoals aangegeven in de schermopname. Ga aan de linkerkant naar het Keys
tabblad. Kopieer het Connection string
veld voor de primaire sleutel. De verbindingsreeks heeft de indelingendpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}
.
Stel de omgevingsvariabele COMMUNICATION_SERVICES_CONNECTION_STRING
in op de waarde van uw verbindingsreeks.
Open een consolevenster en voer de volgende opdracht in:
setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"
Nadat u de omgevingsvariabele hebt toegevoegd, moet u mogelijk alle actieve programma's opnieuw opstarten die de omgevingsvariabele moeten lezen, inclusief het consolevenster. Als u Visual Studio bijvoorbeeld gebruikt als editor, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.
Volg de stappen in Store your verbindingsreeks in een omgevingsvariabele voor meer informatie over het instellen van een omgevingsvariabele voor uw systeem.
# 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)
Kanaalregistratie-id instellen
U hebt de GUID van de kanaalregistratie-id gemaakt tijdens de kanaalregistratie. Zoek deze in de portal op het tabblad Kanalen van uw Azure Communication Services-resource.
Wijs deze toe aan een variabele met de naam channelRegistrationId.
channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")
Adressenlijst instellen
U moet een actief telefoonnummer opgeven dat is gekoppeld aan een WhatsApp-account. Dit WhatsApp-account ontvangt de sjabloon, tekst en mediaberichten die in deze quickstart worden verzonden.
In dit voorbeeld kunt u uw persoonlijke telefoonnummer gebruiken.
Het telefoonnummer van de geadresseerde kan niet het zakelijke telefoonnummer (afzender-id) zijn dat is gekoppeld aan de WhatsApp-kanaalregistratie. De afzender-id wordt weergegeven als de afzender van de tekst- en mediaberichten die naar de geadresseerde worden verzonden.
Het telefoonnummer moet het landnummer bevatten. Zie de WhatsApp-documentatie voor telefoonnummernotaties voor meer informatie over de opmaak van telefoonnummers.
Notitie
Er wordt momenteel slechts één telefoonnummer ondersteund in de lijst met geadresseerden.
Stel de adressenlijst als volgt in:
phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")
Gebruiksvoorbeeld:
# Example only
to=[self.phone_number],
Beginnen met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker
Gesprekken tussen een WhatsApp Business-account en een WhatsApp-gebruiker kunnen op twee manieren worden gestart:
- Het bedrijf verzendt een sjabloonbericht naar de WhatsApp-gebruiker.
- De WhatsApp-gebruiker verzendt een bericht naar het zakelijke nummer.
Een bedrijf kan geen interactief gesprek starten. Een bedrijf kan alleen een interactief bericht verzenden nadat een bericht van de gebruiker is ontvangen. Het bedrijf kan alleen interactieve berichten naar de gebruiker verzenden tijdens het actieve gesprek. Zodra het gespreksvenster van 24 uur is verlopen, kan alleen de gebruiker het interactieve gesprek opnieuw starten. Zie de definitie op WhatsApp Business Platform voor meer informatie over gesprekken.
Als u een interactief gesprek wilt starten vanuit uw persoonlijke WhatsApp-account, stuurt u een bericht naar uw zakelijke nummer (afzender-id).
Codevoorbeelden
Volg deze stappen om vereiste codefragmenten toe te voegen aan het python-programma messages-quickstart.py.
- Een sms-bericht verzenden naar een WhatsApp-gebruiker.
- Een mediabericht voor afbeeldingen verzenden naar een WhatsApp-gebruiker.
- Een documentmediabericht verzenden naar een WhatsApp-gebruiker.
- Een audiomediabericht verzenden naar een WhatsApp-gebruiker.
- Een videomediabericht verzenden naar een WhatsApp-gebruiker.
Een sms-bericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso tekst WhatsApp-berichten verzenden wanneer deze door een WhatsApp-gebruiker wordt gestart. Sms-berichten verzenden:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- Berichttekst/tekst die moet worden verzonden.
Belangrijk
Als u een sms-bericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
In dit voorbeeld beantwoorden we de WhatsApp-gebruiker met de tekst "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")
Als u wilt uitvoerensend_text_message()
, werkt u de hoofdmethode bij:
#Calling send_text_message()
messages.send_text_message()
Een mediabericht voor afbeeldingen verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso WhatsApp-berichten naar WhatsApp-gebruikers verzenden. Ingesloten berichten van afbeeldingen verzenden:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- MediaUri van de afbeelding.
Belangrijk
Als u een sms-bericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Een voorbeeld van het verzenden van media_uri
een WhatsApp-bericht voor media.
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")
Als u wilt uitvoerensend_text_message()
, werkt u de hoofdmethode bij:
# Calling send_image_message()
messages.send_image_message()
Een documentmediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso WhatsApp-berichten naar WhatsApp-gebruikers verzenden. Ingesloten berichten van documenten verzenden:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- MediaUri van het document.
Belangrijk
Als u een documentbericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Een voorbeeld van het verzenden van media_uri
een WhatsApp-bericht voor media.
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")
Als u wilt uitvoerensend_text_message()
, werkt u de hoofdmethode bij:
# Calling send_image_message()
messages.send_image_message()
Een audiomediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso WhatsApp-berichten naar WhatsApp-gebruikers verzenden. Ingesloten audioberichten verzenden:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- MediaUri van de audio.
Belangrijk
Als u een audiobericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Een voorbeeld van het verzenden van media_uri
een WhatsApp-bericht voor media.
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")
Als u wilt uitvoerensend_text_message()
, werkt u de hoofdmethode bij:
# Calling send_image_message()
messages.send_image_message()
Een videomediabericht verzenden naar een WhatsApp-gebruiker
Met de Messages SDK kan Contoso video WhatsApp-berichten verzenden naar WhatsApp-gebruikers. Ingesloten videoberichten verzenden:
- WhatsApp-kanaal-id.
- Telefoonnummer van geadresseerde in E16-indeling.
- MediaUri van de video.
Belangrijk
Als u een videobericht naar een WhatsApp-gebruiker wilt verzenden, moet de WhatsApp-gebruiker eerst een bericht verzenden naar het WhatsApp Business-account. Zie Begin met het verzenden van berichten tussen business en WhatsApp-gebruiker voor meer informatie.
Een voorbeeld van het verzenden van media_uri
een WhatsApp-bericht voor media.
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")
Als u wilt uitvoerensend_text_message()
, werkt u de hoofdmethode bij:
# Calling send_image_message()
messages.send_image_message()
De code uitvoeren
Als u de code wilt uitvoeren, controleert u of u zich in de map bevindt waar het messages-quickstart.py
bestand zich bevindt.
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>>
Volledige voorbeeldcode
Notitie
Vervang alle tijdelijke aanduidingen in de voorbeeldcode door uw waarden.
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()
Andere voorbeelden
U kunt andere voorbeeldcodes voor python Messages SDK op GitHub bekijken en downloaden.
Volgende stappen
In dit artikel wordt de Advanced Messaging voor WhatsApp SDK beschreven. Raadpleeg voor meer informatie de volgende artikelen: