Delen via


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

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.

  1. Open de NuGet-Pakketbeheer op Project>Manage NuGet Packages....
  2. Zoek het pakket Azure.Communication.Messages.
  3. 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

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

Schermopname van een Azure Communication Services-resource in Azure Portal, waarin het veld Verbindingsreeks in de sectie Primaire sleutel wordt weergegeven.

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

Schermopname van een Azure Communication Services-resource in Azure Portal, waarin het tabblad Kanalen wordt weergegeven. Er wordt aandacht besteed aan de kopieeractie van het veld Kanaal-id.

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:

// 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 WhatsApp-gesprek dat op internet wordt weergegeven met een gebruikersbericht dat is verzonden naar het WhatsApp Business-accountnummer.

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:

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:

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, VideoNotificationContenten 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.

  1. Druk op Ctrl+F7 om uw code te compileren.
  2. 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

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

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

Schermopname van een Azure Communication Services-resource in Azure Portal, waarin het veld Verbindingsreeks in de sectie Primaire sleutel wordt weergegeven.

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.

Schermopname van een Azure Communication Services-resource in Azure Portal, waarin het tabblad Kanalen wordt weergegeven. Er wordt aandacht besteed aan de kopieeractie van het veld Kanaal-id.

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:

// 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 WhatsApp-gesprek dat op internet wordt weergegeven met een gebruikersbericht dat is verzonden naar het WhatsApp Business-accountnummer.

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:

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:

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

  1. Navigeer naar de map met het pom.xml-bestand en compileer het project met behulp van de mvn opdracht.

    mvn compile
    
  2. 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

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

  1. 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
    
  2. Voer de volgende opdracht uit om een package.json bestand met standaardinstellingen te maken.

    npm init -y
    
  3. Gebruik een teksteditor om een bestand met de naam send-messages.js te maken in de hoofdmap van het project.

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

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

Schermopname van een Azure Communication Services-resource in Azure Portal, waarin het veld Verbindingsreeks in de sectie Primaire sleutel wordt weergegeven.

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.

Schermopname van een Azure Communication Services-resource in Azure Portal, waarin het tabblad Kanalen wordt weergegeven. Er wordt aandacht besteed aan de kopieeractie van het veld Kanaal-id.

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:

// 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 WhatsApp-gesprek dat op internet wordt weergegeven met een gebruikersbericht dat is verzonden naar het WhatsApp Business-accountnummer.

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:

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:

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

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

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

Schermopname van een Azure Communication Services-resource in Azure Portal, waarin het veld Primaire sleutel in de sectie Sleutels wordt weergegeven.

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.

Schermopname van een Azure Communication Services-resource in Azure Portal, waarin het tabblad Kanalen wordt weergegeven. Er wordt aandacht besteed aan de kopieeractie van het veld Kanaal-id.

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:

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 WhatsApp-gesprek dat op internet wordt weergegeven met een gebruikersbericht dat is verzonden naar het WhatsApp Business-accountnummer.

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:

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:

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:

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:

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:

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: