Quickstart: WhatsApp-berichten verzenden met geavanceerde berichten
Met Azure Communication Services kunt u WhatsApp-berichten verzenden en ontvangen. In deze quickstart gaat u aan de slag met de integratie van uw app met azure Communication Advanced Messages SDK en begint u met het verzenden/ontvangen van WhatsApp-berichten. Voor het voltooien van deze quickstart worden kosten van een paar dollarcent of minder in rekening gebracht bij uw Azure-account.
Vereisten
WhatsApp Business-account geregistreerd bij uw Azure Communication Services-resource
Actief WhatsApp-telefoonnummer voor het ontvangen van berichten
.NET-ontwikkelomgeving (zoals Visual Studio, Visual Studio Code of .NET CLI)
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 Program.cs-bestand in een teksteditor.
Vervang de inhoud van uw 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 - Send WhatsApp Messages");
// Quickstart code goes here
}
}
}
Als u de geavanceerde berichtenfuncties wilt gebruiken, voegen we 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.
Name | Beschrijving |
---|---|
NotificationMessagesClient | Deze klasse maakt verbinding met uw Azure Communication Services-resource. De berichten worden verzonden. |
MessageTemplate | Deze klasse definieert welke sjabloon u gebruikt en de inhoud van de sjablooneigenschappen voor uw bericht. |
TemplateNotificationContent | Deze klasse definieert de 'wie' en het 'wat' van het sjabloonbericht dat u wilt verzenden. |
TextNotificationContent | Deze klasse definieert de 'wie' en het 'wat' van het sms-bericht dat u wilt verzenden. |
MediaNotificationContent | Deze klasse definieert de 'wie' en het 'wat' van het mediabericht dat u wilt verzenden. |
Codevoorbeelden
Volg deze stappen om de benodigde codefragmenten toe te voegen aan de hoofdfunctie van uw Program.cs-bestand .
- De client verifiëren
- Kanaalregistratie-id instellen
- Adressenlijst instellen
- Beginnen met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker
- Een sms-bericht verzenden naar een WhatsApp-gebruiker
- Een mediabericht verzenden naar een WhatsApp-gebruiker
De client verifiëren
Deze NotificationMessagesClient
wordt gebruikt om verbinding te maken met uw Azure Communication Services-resource.
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
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.
var channelRegistrationId = new Guid("<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:
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.
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.
(Optie 1) Gesprek starten vanuit bedrijf - Een sjabloonbericht verzenden
Start een gesprek door een sjabloonbericht te verzenden.
Maak eerst een MessageTemplate met behulp van de waarden voor een sjabloon.
Notitie
Als u wilt controleren welke sjablonen beschikbaar zijn, raadpleegt u de instructies in Lijstsjablonen. Als u geen sjabloon hebt om te gebruiken, gaat u verder met optie 2.
Dit is het maken van MessageTemplate met behulp van een standaardsjabloon. sample_template
Als sample_template
dit niet voor u beschikbaar is, gaat u verder met optie 2. Zie de paginasjablonen voor meer informatie over het verzenden van een andere sjabloon met optie 1 voor geavanceerde gebruikers.
Met de Berichten-SDK kan Contoso gesjabloonde WhatsApp-berichten verzenden naar WhatsApp-gebruikers. Als u een sjabloonbericht wilt verzenden, hebt u het volgende nodig:
- Geverifieerde NotificationMessagesClient
- WhatsApp-kanaal-id
- Telefoonnummer van geadresseerde in E16-indeling
- Sjabloondetails
- Naam zoals 'sample_template'
- Taal zoals 'en_us'
- Parameters indien van toepassing
// Assemble the template content
string templateName = "sample_template";
string templateLanguage = "en_us";
var messageTemplate = new MessageTemplate(templateName, templateLanguage);
Raadpleeg de volgende resource voor meer voorbeelden van het samenstellen van uw MessageTemplate en het maken van uw eigen sjabloon:
Raadpleeg de WhatsApp Business Platform-API-verwijzingen voor meer WhatsApp-vereisten voor sjablonen:
Voeg vervolgens het sjabloonbericht samen:
// Assemble template message
var templateContent =
new TemplateNotificationContent(channelRegistrationId, recipientList, messageTemplate);
// Send template message
Response<SendMessageResult> sendTemplateMessageResult =
await notificationMessagesClient.SendAsync(templateContent);
De gebruiker moet nu reageren op het sjabloonbericht. Beantwoord vanuit het WhatsApp-gebruikersaccount het sjabloonbericht dat is ontvangen van het WhatsApp Business-account. De inhoud van het bericht is niet relevant voor dit scenario.
Belangrijk
De geadresseerde moet reageren op het sjabloonbericht om het gesprek te starten voordat tekst of mediabericht aan de geadresseerde kan worden bezorgd.
(Optie 2) Gesprek starten van gebruiker
De andere optie om een gesprek tussen een WhatsApp Business-account en een WhatsApp-gebruiker te starten, is door de gebruiker het gesprek te laten initiëren. Als u dit wilt doen, verzendt u vanuit uw persoonlijke WhatsApp-account een bericht naar uw zakelijke nummer (afzender-id).
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
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 'Bedankt voor uw feedback.\n Van Notification Messaging SDK'.
Voeg vervolgens het tekstbericht samen:
// 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 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 media
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.
Belangrijk
Vanaf SDK-versie 1.1.0 MediaNotificationContent
wordt deze afgeschaft voor installatiekopieën. We raden u aan om afbeeldingen te ImageNotificationContent
verzenden en andere inhoudsspecifieke klassen te verkennen voor andere mediatypen, zoals DocumentNotificationContent
, VideoNotificationContent
en AudioNotificationContent
.
Hieronder ziet u voorbeeldcodefragmenten voor het verzenden van verschillende typen mediaberichten, waaronder afbeeldingen, documenten, video's en audiobestanden.
Een afbeeldingsinhoud verzenden
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 document verzenden
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 video-inhoud verzenden
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 audio-inhoud verzenden
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, moet u voor deze quickstart een wachttijd toevoegen 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 geregistreerd bij uw Azure Communication Services-resource
Actief WhatsApp-telefoonnummer voor het ontvangen van berichten
Java Development Kit (JDK) versie 8 of hoger
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 uw terminal- of opdrachtvenster en navigeer naar de map waarin 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, bevat de src/test/java-map de testbron en het pom.xml bestand is het Project Object Model (POM) van het project.
Het pakket installeren
Open het bestand pom.xml in uw teksteditor. Voeg het volgende afhankelijkheidselement toe aan de groep met afhankelijkheden.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-messages</artifactId>
<version>1.0.0</version>
</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.
}
}
Objectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Advance Messaging SDK voor Java.
Name | Beschrijving |
---|---|
NotificationMessagesClientBuilder | Met deze klasse wordt de client voor meldingenberichten gemaakt. U geeft het op met een eindpunt en een referentie. |
NotificationMessagesClient | Deze klasse is nodig om WhatsApp-berichten te verzenden en mediabestanden te downloaden. |
NotificationMessagesAsyncClient | Deze klasse is nodig om WhatsApp-berichten te verzenden en mediabestanden asynchroon te downloaden. |
SendMessageResult | Deze klasse bevat het resultaat van de Advance Messaging-service voor het verzenden van een meldingsbericht. |
MessageTemplateClientBuilder | Met deze klasse maakt u de berichtsjabloonclient. U geeft het op met een eindpunt en een referentie. |
MessageTemplateClient | Deze klasse is nodig om de lijst met WhatsApp-sjablonen op te halen. |
MessageTemplateAsyncClient | Deze klasse is nodig om de lijst met WhatsApp-sjablonen asynchroon op te halen. |
Codevoorbeelden
Volg deze stappen om de benodigde codefragmenten toe te voegen aan de hoofdfunctie van uw App.java-bestand .
- De client verifiëren
- Kanaalregistratie-id instellen
- Adressenlijst instellen
- Beginnen met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker
- Een sms-bericht verzenden naar een WhatsApp-gebruiker
- Een mediabericht verzenden naar een WhatsApp-gebruiker
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");
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.
(Optie 1) Gesprek starten vanuit bedrijf - Een sjabloonbericht verzenden
Start een gesprek door een sjabloonbericht te verzenden.
Maak eerst een MessageTemplate met behulp van de waarden voor een sjabloon.
Notitie
Als u wilt controleren welke sjablonen beschikbaar zijn, raadpleegt u de instructies in Lijstsjablonen. Als u geen sjabloon hebt om te gebruiken, gaat u verder met optie 2.
Dit is het maken van MessageTemplate met behulp van een standaardsjabloon. sample_template
Als sample_template
dit niet voor u beschikbaar is, gaat u verder met optie 2. Zie de paginasjablonen voor meer informatie over het verzenden van een andere sjabloon met optie 1 voor geavanceerde gebruikers.
Met de Berichten-SDK kan Contoso gesjabloonde WhatsApp-berichten verzenden naar WhatsApp-gebruikers. Voor het verzenden van sjabloonberichten hieronder zijn details vereist:
- WhatsApp-kanaal-id
- Telefoonnummer van geadresseerde in E16-indeling
- Sjabloondetails
- Naam zoals 'sample_template'
- Taal zoals 'en_us'
- Parameters indien van toepassing
// Assemble the template content
String templateName = "sample_template";
String templateLanguage = "en_us";
MessageTemplate messageTemplate = new MessageTemplate(templateName, templateLanguage);
// Assemble template message
TemplateNotificationContent templateContent = new TemplateNotificationContent(channelRegistrationId, recipientList, messageTemplate);
// Send template message
SendMessageResult templateMessageResult = notificationClient.send(templateContent);
// Process result
for (MessageReceipt messageReceipt : templateMessageResult.getReceipts()) {
System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}
De gebruiker moet nu reageren op het sjabloonbericht. Beantwoord vanuit het WhatsApp-gebruikersaccount het sjabloonbericht dat is ontvangen van het WhatsApp Business-account. De inhoud van het bericht is niet relevant voor dit scenario.
Belangrijk
De geadresseerde moet reageren op het sjabloonbericht om het gesprek te starten voordat tekst of mediabericht aan de geadresseerde kan worden bezorgd.
(Optie 2) Gesprek starten van gebruiker
De andere optie om een gesprek tussen een WhatsApp Business-account en een WhatsApp-gebruiker te starten, is door de gebruiker het gesprek te laten initiëren. Als u dit wilt doen, verzendt u vanuit uw persoonlijke WhatsApp-account een bericht naar uw zakelijke nummer (afzender-id).
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
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 'Bedankt voor uw feedback.\n Van Notification Messaging SDK'.
Voeg vervolgens het tekstbericht samen:
// 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 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 media Afbeelding, Video, Document of Audio
Belangrijk
Als u een 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.
Belangrijk
Vanaf SDK-versie 1.1.0 MediaNotificationContent
wordt deze afgeschaft voor installatiekopieën. We raden u aan om afbeeldingen te ImageNotificationContent
verzenden en andere inhoudsspecifieke klassen te verkennen voor andere mediatypen, zoals DocumentNotificationContent
, VideoNotificationContent
en AudioNotificationContent
.
Een afbeeldingsbericht verzenden
Voeg vervolgens het afbeeldingsbericht samen:
// 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 videobericht verzenden
Voeg vervolgens het videobericht samen:
// 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 audiobericht verzenden
Stel het audiobericht vervolgens samen:
// 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 documentbericht verzenden
Voeg vervolgens het documentbericht samen:
// 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
Navigeer naar de map met het pom.xml-bestand en compileer het project met behulp van de
mvn
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 geregistreerd bij uw Azure Communication Services-resource
Actief WhatsApp-telefoonnummer voor het ontvangen van berichten
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
Als u een omgeving wilt instellen voor het verzenden van berichten, voert u de stappen in de volgende secties uit.
Een nieuwe Node.js-toepassing maken
Maak een nieuwe map voor uw app en navigeer ernaar door het terminal- of opdrachtvenster te openen en voer vervolgens 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 met de naam send-messages.js te maken 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); });
In de volgende secties hebt u alle broncode voor deze quickstart toegevoegd 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.
Objectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de Azure Communication Services Advance Messaging SDK voor JavaScript.
Name | Beschrijving |
---|---|
MessageClient | Deze klasse maakt verbinding met uw Azure Communication Services-resource. De berichten worden verzonden. |
MessageTemplate | Deze klasse definieert welke sjabloon u gebruikt en de inhoud van de sjablooneigenschappen voor uw bericht. |
Codevoorbeelden
Volg deze stappen om de benodigde codefragmenten toe te voegen aan de hoofdfunctie van uw send-messages.js-bestand .
- De client verifiëren
- Kanaalregistratie-id instellen
- Adressenlijst instellen
- Beginnen met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker
- Een sms-bericht verzenden naar een WhatsApp-gebruiker
- Een mediabericht verzenden naar een WhatsApp-gebruiker
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 MessageClient wilt instantiëren, voegt u de volgende code toe aan de Main
methode:
const MessageClient = require("@azure-rest/communication-messages").default;
// Set Connection string
const connectionString = process.env["COMMUNICATION_SERVICES_CONNECTION_STRING"];
// Instantiate the client
const client = MessageClient(connectionString);
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"];
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.
(Optie 1) Gesprek starten vanuit bedrijf - Een sjabloonbericht verzenden
Start een gesprek door een sjabloonbericht te verzenden.
Maak eerst een MessageTemplate met behulp van de waarden voor een sjabloon.
Notitie
Als u wilt controleren welke sjablonen beschikbaar zijn, raadpleegt u de instructies in Lijstsjablonen. Als u geen sjabloon hebt om te gebruiken, gaat u verder met optie 2.
Dit is het maken van MessageTemplate met behulp van een standaardsjabloon. sample_template
Als sample_template
dit niet voor u beschikbaar is, gaat u verder met optie 2. Zie de paginasjablonen voor meer informatie over het verzenden van een andere sjabloon met optie 1 voor geavanceerde gebruikers.
Met de Berichten-SDK kan Contoso gesjabloonde WhatsApp-berichten verzenden naar WhatsApp-gebruikers. Voor het verzenden van sjabloonberichten hieronder zijn details vereist:
- WhatsApp-kanaal-id
- Telefoonnummer van geadresseerde in E16-indeling
- Sjabloondetails
- Naam zoals 'sample_template'
- Taal zoals 'en_us'
- Parameters indien van toepassing
// Assemble the template content
const template = {
name: "sample_template",
language: "en_US"
};
Raadpleeg de volgende resource voor meer voorbeelden van het samenstellen van uw MessageTemplate en het maken van uw eigen sjabloon:
Raadpleeg de WhatsApp Business Platform-API-verwijzingen voor meer WhatsApp-vereisten voor sjablonen:
// Send template message
const templateMessageResult = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: channelRegistrationId,
to: recipientList,
kind: "template",
template: template
}
});
// Process result
if (templateMessageResult.status === "202") {
templateMessageResult.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
De gebruiker moet nu reageren op het sjabloonbericht. Beantwoord vanuit het WhatsApp-gebruikersaccount het sjabloonbericht dat is ontvangen van het WhatsApp Business-account. De inhoud van het bericht is niet relevant voor dit scenario.
Belangrijk
De geadresseerde moet reageren op het sjabloonbericht om het gesprek te starten voordat tekst of mediabericht aan de geadresseerde kan worden bezorgd.
(Optie 2) Gesprek starten van gebruiker
De andere optie om een gesprek tussen een WhatsApp Business-account en een WhatsApp-gebruiker te starten, is door de gebruiker het gesprek te laten initiëren. Als u dit wilt doen, verzendt u vanuit uw persoonlijke WhatsApp-account een bericht naar uw zakelijke nummer (afzender-id).
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
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 'Bedankt voor uw feedback.\n Van Notification Messaging SDK'.
Het mediabericht 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 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 media Afbeelding, Video, Document of Audio
Belangrijk
Als u een 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.
Belangrijk
Vanaf SDK-versie 2.0.0 wordt MediaNotificationContent
deze afgeschaft voor installatiekopieën. We raden u aan om afbeeldingen te ImageNotificationContent
verzenden en andere inhoudsspecifieke klassen te verkennen voor andere mediatypen, zoals DocumentNotificationContent
, VideoNotificationContent
en AudioNotificationContent
.
Afbeeldingsinhoud verzenden
Als u een afbeeldingsbericht wilt verzenden, geeft u een URL op naar een afbeelding. Een 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");
}
Video-inhoud verzenden
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");
}
Audio-inhoud verzenden
Als u een audiobericht wilt verzenden, geeft u een URL op naar een audiobestand. Een voorbeeld,
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");
}
Documentinhoud verzenden
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 hebt toegevoegd aan het send-messages.js-bestand.
node ./send-messages.js
Volledige voorbeeldcode
U kunt de voorbeeld-app downloaden uit 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 navigeer ernaartoe.
mkdir messages-quickstart && cd messages-quickstart
Het pakket installeren
U moet de Azure Communication Messages-clientbibliotheek voor Python versie 1.0.0 of hoger gebruiken.
Voer vanaf een consoleprompt de volgende opdracht uit:
pip install azure-communication-messages
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.
Name | Beschrijving |
---|---|
NotificationMessagesClient | Deze klasse maakt verbinding met uw Azure Communication Services-resource. De berichten worden verzonden. |
MessageTemplate | Deze klasse definieert welke sjabloon u gebruikt en de inhoud van de sjablooneigenschappen voor uw bericht. |
TemplateNotificationContent | Deze klasse definieert de 'wie' en het 'wat' van het sjabloonbericht dat u wilt verzenden. |
TextNotificationContent | Deze klasse definieert de 'wie' en het 'wat' van het sms-bericht dat u wilt verzenden. |
ImageNotificationContent | Deze klasse definieert de 'wie' en het 'wat' van het afbeeldingsmediabericht dat u wilt verzenden. |
DocumentNotificationContent | Deze klasse definieert de 'wie' en het 'wat' van het documentmediabericht dat u wilt verzenden. |
VideoNotificationContent | Deze klasse definieert de 'wie' en het 'wat' van het videomediabericht dat u wilt verzenden. |
AudioNotificationContent | Deze klasse definieert de 'wie' en het 'wat' van het audiomediabericht dat u wilt verzenden. |
Codevoorbeelden
Volg deze stappen om de benodigde codefragmenten toe te voegen aan het python-programma messages-quickstart.py.
- De client verifiëren
- Kanaalregistratie-id instellen
- Adressenlijst instellen
- Beginnen met het verzenden van berichten tussen een bedrijf en een WhatsApp-gebruiker
- Een sms-bericht verzenden naar een WhatsApp-gebruiker
- Een mediabericht verzenden naar 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
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.
channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_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.
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.
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.
(Optie 1) Gesprek starten vanuit bedrijf - Een sjabloonbericht verzenden
Start een gesprek door een sjabloonbericht te verzenden.
Maak eerst een MessageTemplate met behulp van de waarden voor een sjabloon.
Notitie
Als u wilt controleren welke sjablonen beschikbaar zijn, raadpleegt u de instructies in Lijstsjablonen. Als u geen sjabloon hebt om te gebruiken, gaat u verder met optie 2.
Dit is het maken van MessageTemplate met behulp van een standaardsjabloon. sample_template
Als sample_template
dit niet voor u beschikbaar is, gaat u verder met optie 2. Zie de paginasjablonen voor meer informatie over het verzenden van een andere sjabloon met optie 1 voor geavanceerde gebruikers.
Met de Berichten-SDK kan Contoso gesjabloonde WhatsApp-berichten verzenden naar WhatsApp-gebruikers. Voor het verzenden van sjabloonberichten hieronder zijn details vereist:
- WhatsApp-kanaal-id
- Telefoonnummer van geadresseerde in E16-indeling
- Sjabloondetails
- Naam zoals 'sample_template'
- Taal zoals 'en_us'
- Parameters indien van toepassing
Raadpleeg de volgende resource voor meer voorbeelden van het samenstellen van uw MessageTemplate en het maken van uw eigen sjabloon:
Raadpleeg de WhatsApp Business Platform-API-verwijzingen voor meer WhatsApp-vereisten voor sjablonen:
Als u een WhatsApp-sjabloonbericht wilt verzenden, voegt u opgegeven code toe in de functie send_template_message(self).
input_template: MessageTemplate = MessageTemplate(
name="<<template_name>>",
language="<<template_language>>")
template_options = TemplateNotificationContent(
channel_registration_id=self.channelRegistrationId,
to=[self.phone_number],
template=input_template
)
# calling send() with whatsapp template details
message_responses = messaging_client.send(template_options)
response = message_responses.receipts[0]
if (response is not None):
print("WhatsApp Templated Message with message id {} was successfully sent to {}."
.format(response.message_id, response.to))
else:
print("Message failed to send")
Voeg send_template_message() aanroep toe aan de hoofdmethode.
# Calling send_template_message()
messages.send_template_message()
De gebruiker moet nu reageren op het sjabloonbericht. Beantwoord vanuit het WhatsApp-gebruikersaccount het sjabloonbericht dat is ontvangen van het WhatsApp Business-account. De inhoud van het bericht is niet relevant voor dit scenario.
Belangrijk
De geadresseerde moet reageren op het sjabloonbericht om het gesprek te starten voordat tekst of mediabericht aan de geadresseerde kan worden bezorgd.
(Optie 2) Gesprek starten van gebruiker
De andere optie om een gesprek tussen een WhatsApp Business-account en een WhatsApp-gebruiker te starten, is door de gebruiker het gesprek te laten initiëren. Als u dit wilt doen, verzendt u vanuit uw persoonlijke WhatsApp-account een bericht naar uw zakelijke nummer (afzender-id).
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
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 'Bedankt voor uw feedback.\n Van 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 send_text_message() wilt uitvoeren, 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 van afbeeldingen verzenden naar WhatsApp-gebruikers. Voor het verzenden van ingesloten berichten over afbeeldingen zijn de onderstaande details vereist:
- 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 media_uri gebruikt voor het verzenden van media WhatsApp-bericht.
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 send_text_message() wilt uitvoeren, 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 van afbeeldingen verzenden naar WhatsApp-gebruikers. Voor het verzenden van ingesloten berichten over afbeeldingen zijn de onderstaande details vereist:
- 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 media_uri gebruikt voor het verzenden van media WhatsApp-bericht.
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 send_text_message() wilt uitvoeren, 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 van afbeeldingen verzenden naar WhatsApp-gebruikers. Voor het verzenden van ingesloten berichten over afbeeldingen zijn de onderstaande details vereist:
- 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 media_uri gebruikt voor het verzenden van media WhatsApp-bericht.
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 send_text_message() wilt uitvoeren, werkt u de hoofdmethode bij
# Calling send_image_message()
messages.send_image_message()
Een videomediabericht verzenden naar een WhatsApp-gebruiker
Met de Berichten-SDK kan Contoso WhatsApp-berichten van afbeeldingen verzenden naar WhatsApp-gebruikers. Voor het verzenden van ingesloten berichten over afbeeldingen zijn de onderstaande details vereist:
- 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 media_uri gebruikt voor het verzenden van media WhatsApp-bericht.
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 send_text_message() wilt uitvoeren, 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 waarin 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
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()
Notitie
Werk alle tijdelijke aanduidingen voor variabelen in de bovenstaande code bij.
Andere voorbeelden
U kunt andere voorbeeldcodes voor python Messages SDK op GitHub bekijken en downloaden.
Volgende stappen
In deze quickstart hebt u de Advanced Messaging voor WhatsApp SDK uitgeprobeerd. Vervolgens wilt u mogelijk ook de volgende artikelen bekijken: