Dela via


Snabbstart: Skicka WhatsApp-meddelanden med avancerade meddelanden

Med Azure Communication Services kan du skicka och ta emot WhatsApp-meddelanden. I den här snabbstarten kommer du igång med att integrera din app med Azure Communication Advanced Messages SDK och börja skicka/ta emot WhatsApp-meddelanden. Slutförande av den här snabbstarten medför en liten kostnad på några USD-cent eller mindre på ditt Azure-konto.

Förutsättningar

Konfigurera

Skapa .NET-projektet

Om du vill skapa projektet följer du självstudien i Skapa ett .NET-konsolprogram med Visual Studio.

Kompilera koden genom att trycka på Ctrl+F7.

Installera -paketet

Installera NuGet-paketet Azure.Communication.Messages i C#-projektet.

  1. Öppna NuGet Package Manager på Project>Manage NuGet Packages....
  2. Sök efter paketet Azure.Communication.Messages.
  3. Installera den senaste versionen.

Konfigurera appramverket

Öppna filen Program.cs i en textredigerare.

Ersätt innehållet i Program.cs med följande kod:

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

Om du vill använda avancerade meddelandefunktioner lägger vi till ett using direktiv för att inkludera Azure.Communication.Messages namnområdet.

using Azure.Communication.Messages;

Objektmodell

Följande klasser och gränssnitt hanterar några av de viktigaste funktionerna i Azure Communication Services Advance Messaging SDK för .NET.

Name beskrivning
NotificationMessagesClient Den här klassen ansluter till din Azure Communication Services-resurs. Den skickar meddelandena.
MessageTemplate Den här klassen definierar vilken mall du använder och innehållet i mallegenskaperna för ditt meddelande.
TemplateNotificationContent Den här klassen definierar "vem" och "vad" för mallmeddelandet som du tänker skicka.
TextNotificationContent Den här klassen definierar "vem" och "vad" för det textmeddelande som du tänker skicka.
MediaNotificationContent Den här klassen definierar "vem" och "vad" för mediemeddelandet som du tänker skicka.

Kodexempel

Följ de här stegen för att lägga till nödvändiga kodfragment i main-funktionen i din Program.cs-fil .

Autentisera klienten

NotificationMessagesClient Används för att ansluta till din Azure Communication Services-resurs.

För enkelhetens skull använder den här snabbstarten en anslutningssträng för att autentisera. I produktionsmiljöer rekommenderar vi att du använder tjänstens huvudnamn.

Hämta anslutningssträng från din Azure Communication Services-resurs i Azure Portal. Till vänster går du till fliken Keys . Kopiera fältet Connection string för primärnyckeln. Anslutningssträng är i formatet endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Skärmbild som visar en Azure Communication Services-resurs i Azure Portal och visar fältet Anslutningssträng i avsnittet Primärnyckel.

Ange miljövariabeln COMMUNICATION_SERVICES_CONNECTION_STRING till värdet för din anslutningssträng.
Öppna ett konsolfönster och ange följande kommando:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

När du har lagt till miljövariabeln kan du behöva starta om alla program som körs och som behöver läsa miljövariabeln, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Mer information om hur du anger en miljövariabel för systemet finns i Lagra dina anslutningssträng i en miljövariabel.

Om du vill instansiera en NotificationMessagesClientlägger du till följande kod i Main metoden:

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

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

Ange kanalregistrerings-ID

GUID för kanalregistrering skapades under kanalregistreringen. Du kan söka efter den i portalen på fliken Kanaler för din Azure Communication Services-resurs.

Skärmbild som visar en Azure Communication Services-resurs i Azure Portal och visar fliken Kanaler. Uppmärksamhet läggs på kopieringsåtgärden för fältet Kanal-ID.

Tilldela den till en variabel med namnet channelRegistrationId.

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

Ange mottagarlista

Du måste ange ett riktigt telefonnummer som har ett WhatsApp-konto associerat med det. Det här WhatsApp-kontot tar emot mall-, text- och mediemeddelanden som skickas i den här snabbstarten. För den här snabbstarten kan det här telefonnumret vara ditt personliga telefonnummer.

Mottagarens telefonnummer kan inte vara det företagstelefonnummer (avsändar-ID) som är associerat med WhatsApp-kanalregistreringen. Avsändar-ID:t visas som avsändare av text- och mediemeddelanden som skickas till mottagaren.

Telefonnumret ska innehålla landskoden. Mer information om telefonnummerformatering finns i WhatsApp-dokumentationen för telefonnummerformat.

Kommentar

Endast ett telefonnummer stöds för närvarande i mottagarlistan.

Skapa mottagarlistan så här:

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

Exempel:

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

Börja skicka meddelanden mellan ett företag och en WhatsApp-användare

Konversationer mellan ett WhatsApp Business-konto och en WhatsApp-användare kan initieras på något av två sätt:

  • Företaget skickar ett mallmeddelande till WhatsApp-användaren.
  • WhatsApp-användaren skickar ett meddelande till företagsnumret.

Oavsett hur konversationen startades kan ett företag bara skicka mallmeddelanden tills användaren skickar ett meddelande till företaget. Först när användaren har skickat ett meddelande till företaget kan företaget skicka text- eller mediemeddelanden till användaren under den aktiva konversationen. När konversationsfönstret på 24 timmar upphör att gälla måste konversationen initieras igen. Mer information om konversationer finns i definitionen på WhatsApp Business Platform.

(Alternativ 1) Initiera konversation från företag – Skicka ett mallmeddelande

Initiera en konversation genom att skicka ett mallmeddelande.

Skapa först ett MessageTemplate med hjälp av värdena för en mall.

Kommentar

Om du vill kontrollera vilka mallar du har tillgängliga kan du läsa anvisningarna i Listmallar. Om du inte har någon mall att använda fortsätter du till Alternativ 2.

Här är MessageTemplate-skapandet med hjälp av en standardmall, sample_template.
Om sample_template inte är tillgängligt för dig går du vidare till Alternativ 2. Avancerade användare finns på sidan Mallar för att förstå hur du skickar en annan mall med alternativ 1.

Med Messages SDK kan Contoso skicka mallade WhatsApp-meddelanden till WhatsApp-användare. Om du vill skicka ett mallmeddelande behöver du:

// Assemble the template content
string templateName = "sample_template";
string templateLanguage = "en_us";
var messageTemplate = new MessageTemplate(templateName, templateLanguage);

Fler exempel på hur du monterar MessageTemplate och hur du skapar en egen mall finns i följande resurs:

Mer information om WhatsApp-krav för mallar finns i API-referenserna för WhatsApp Business Platform:

Montera och skicka sedan mallmeddelandet:

// Assemble template message
var templateContent = 
    new TemplateNotificationContent(channelRegistrationId, recipientList, messageTemplate);

// Send template message
Response<SendMessageResult> sendTemplateMessageResult = 
    await notificationMessagesClient.SendAsync(templateContent);

Nu måste användaren svara på mallmeddelandet. Från WhatsApp-användarkontot svarar du på mallmeddelandet som tagits emot från WhatsApp Business-kontot. Innehållet i meddelandet är irrelevant för det här scenariot.

Viktigt!

Mottagaren måste svara på mallmeddelandet för att starta konversationen innan text- eller mediemeddelande kan levereras till mottagaren.

(Alternativ 2) Initiera konversation från användare

Det andra alternativet för att initiera en konversation mellan ett WhatsApp Business-konto och en WhatsApp-användare är att låta användaren initiera konversationen. Det gör du genom att skicka ett meddelande till ditt företagsnummer (avsändar-ID) från ditt personliga WhatsApp-konto.

En WhatsApp-konversation som visas på webben och som visar ett användarmeddelande som skickats till WhatsApp Business-kontonumret.

Skicka ett textmeddelande till en WhatsApp-användare

Med Messages SDK kan Contoso skicka WhatsApp-textmeddelanden, som initierade WhatsApp-användare som initierades. Om du vill skicka ett sms behöver du:

Viktigt!

Om du vill skicka ett sms till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

I det här exemplet svarar vi WhatsApp-användaren med texten "Tack för din feedback.\n Från Meddelandemeddelande-SDK".

Montera och skicka sedan textmeddelandet:

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

Skicka ett mediemeddelande till en WhatsApp-användare

Med Messages SDK kan Contoso skicka WhatsApp-mediemeddelanden till WhatsApp-användare. Om du vill skicka ett inbäddat mediemeddelande behöver du:

Viktigt!

Om du vill skicka ett sms till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

Viktigt!

Från och med SDK version 1.1.0 MediaNotificationContent är inaktuell för bilder. Vi rekommenderar att du använder ImageNotificationContent för att skicka bilder och utforska andra innehållsspecifika klasser för andra medietyper som DocumentNotificationContent, VideoNotificationContentoch AudioNotificationContent.

Nedan visas exempelkodfragment för att skicka olika typer av mediemeddelanden, inklusive bilder, dokument, videor och ljudfiler.

Skicka ett bildinnehåll

Montera avbildningsmeddelandet:

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

Skicka avbildningsmeddelandet:

var imageResponse = await notificationMessagesClient.SendAsync(imageNotificationContent);

Skicka ett dokument

Sammanställ dokumentinnehållet:

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

Skicka dokumentmeddelandet:

var documentResponse = await notificationMessagesClient.SendAsync(documentNotificationContent);

Skicka ett videoinnehåll

Montera videomeddelandet:

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

Skicka videomeddelandet:

var videoResponse = await notificationMessagesClient.SendAsync(videoNotificationContent);

Skicka ett ljudinnehåll

Montera ljudmeddelandet:

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

Skicka ljudmeddelandet:

var audioResponse = await notificationMessagesClient.SendAsync(audioNotificationContent);

Kör koden

Skapa och kör programmet.

Om du vill skicka ett text- eller mediemeddelande till en WhatsApp-användare måste det finnas en aktiv konversation mellan WhatsApp Business-kontot och WhatsApp-användaren.
Om du inte har en aktiv konversation bör du i den här snabbstarten lägga till en väntetid mellan att skicka mallmeddelandet och skicka textmeddelandet. Den här fördröjningen ger dig tillräckligt med tid för att svara på verksamheten på användarens WhatsApp-konto. Som referens uppmanas det fullständiga exemplet i Exempelkod att ange manuella användarindata innan nästa meddelande skickas.

Om det lyckas får du tre meddelanden på användarens WhatsApp-konto.

  1. Kompilera koden genom att trycka på Ctrl+F7.
  2. Om du vill köra programmet utan felsökning trycker du på Ctrl+F5.

Full exempelkod

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

Förutsättningar

Konfigurera

Utför stegen i följande avsnitt för att konfigurera en miljö för att skicka meddelanden.

Skapa ett nytt Java-program

Öppna terminalen eller kommandofönstret och gå till katalogen där du vill skapa java-programmet. Kör följande kommando för att generera Java-projektet från mallen maven-archetype-quickstart.

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

Målet generate skapar en katalog med samma namn som värdet artifactId . Under den här katalogen innehåller katalogen src/main/java projektets källkod, katalogen src/test/java innehåller testkällan och filen pom.xml är projektets projektobjektmodell (POM).

Installera -paketet

Öppna filen pom.xml i textredigeraren. Lägg till följande beroendeelement i gruppen med beroenden.

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

Konfigurera appramverket

Öppna /src/main/java/com/communication/quickstart/App.java i en textredigerare, lägg till importdirektiv och ta bort instruktionen System.out.println("Hello world!"); :

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

Objektmodell

Följande klasser och gränssnitt hanterar några av de viktigaste funktionerna i Azure Communication Services Advance Messaging SDK för Java.

Name beskrivning
NotificationMessagesClientBuilder Den här klassen skapar meddelandeklienten. Du ger den en slutpunkt och en autentiseringsuppgift.
NotificationMessagesClient Den här klassen behövs för att skicka WhatsApp-meddelanden och ladda ned mediefiler.
NotificationMessagesAsyncClient Den här klassen behövs för att skicka WhatsApp-meddelanden och ladda ned mediefiler asynkront.
SendMessageResult Den här klassen innehåller resultatet från tjänsten Advance Messaging för att skicka meddelande.
MessageTemplateClientBuilder Den här klassen skapar meddelandemallsklienten. Du ger den en slutpunkt och en autentiseringsuppgift.
MessageTemplateClient Den här klassen behövs för att hämta listan över WhatsApp-mallar.
MessageTemplateAsyncClient Den här klassen behövs för att hämta listan över WhatsApp-mallar asynkront.

Kodexempel

Följ de här stegen för att lägga till nödvändiga kodfragment i huvudfunktionen i din App.java-fil .

Autentisera klienten

Det finns några olika alternativ för att autentisera en meddelandeklient:

Om du vill autentisera en klient instansierar du en NotificationMessagesClient eller MessageTemplateClient dina anslutningssträng. Du kan också initiera klienten med en anpassad HTTP-klient som implementerar com.azure.core.http.HttpClient gränssnittet.

För enkelhetens skull använder den här snabbstarten en anslutningssträng för att autentisera. I produktionsmiljöer rekommenderar vi att du använder tjänstens huvudnamn.

Hämta anslutningssträng från din Azure Communication Services-resurs i Azure Portal. Till vänster navigerar du till fliken Keys . Kopiera fältet Connection string för Primary key. Anslutningssträng är i formatet endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Skärmbild som visar en Azure Communication Services-resurs i Azure Portal och visar fältet Anslutningssträng i avsnittet Primärnyckel.

Ange miljövariabeln COMMUNICATION_SERVICES_CONNECTION_STRING till värdet för din anslutningssträng.
Öppna ett konsolfönster och ange följande kommando:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Mer information om hur du anger en miljövariabel för systemet finns i Lagra dina anslutningssträng i en miljövariabel.

Om du vill instansiera en NotificationMessagesClient lägger du till följande kod i main metoden:

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

Ange kanalregistrerings-ID

GUID för kanalregistrering skapades under kanalregistreringen. Du kan söka efter den i portalen på fliken Kanaler för din Azure Communication Services-resurs.

Skärmbild som visar en Azure Communication Services-resurs i Azure Portal och visar fliken Kanaler. Uppmärksamhet läggs på kopieringsåtgärden för fältet Kanal-ID.

Tilldela den till en variabel med namnet channelRegistrationId.

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

Ange mottagarlista

Du måste ange ett riktigt telefonnummer som har ett WhatsApp-konto associerat med det. Det här WhatsApp-kontot tar emot text- och mediemeddelanden som skickas i den här snabbstarten. För den här snabbstarten kan det här telefonnumret vara ditt personliga telefonnummer.

Mottagarens telefonnummer kan inte vara det företagstelefonnummer (avsändar-ID) som är associerat med WhatsApp-kanalregistreringen. Avsändar-ID:t visas som avsändare av text- och mediemeddelanden som skickas till mottagaren.

Telefonnumret ska innehålla landskoden. Mer information om telefonnummerformatering finns i WhatsApp-dokumentationen för telefonnummerformat.

Kommentar

Endast ett telefonnummer stöds för närvarande i mottagarlistan.

Skapa mottagarlistan så här:

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

Exempel:

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

Börja skicka meddelanden mellan ett företag och en WhatsApp-användare

Konversationer mellan ett WhatsApp Business-konto och en WhatsApp-användare kan initieras på något av två sätt:

  • Företaget skickar ett mallmeddelande till WhatsApp-användaren.
  • WhatsApp-användaren skickar ett meddelande till företagsnumret.

Oavsett hur konversationen startades kan ett företag bara skicka mallmeddelanden tills användaren skickar ett meddelande till företaget. Först när användaren har skickat ett meddelande till företaget kan företaget skicka text- eller mediemeddelanden till användaren under den aktiva konversationen. När konversationsfönstret på 24 timmar upphör att gälla måste konversationen initieras igen. Mer information om konversationer finns i definitionen på WhatsApp Business Platform.

(Alternativ 1) Initiera konversation från företag – Skicka ett mallmeddelande

Initiera en konversation genom att skicka ett mallmeddelande.

Skapa först ett MessageTemplate med hjälp av värdena för en mall.

Kommentar

Om du vill kontrollera vilka mallar du har tillgängliga kan du läsa anvisningarna i Listmallar. Om du inte har någon mall att använda fortsätter du till Alternativ 2.

Här är MessageTemplate-skapandet med hjälp av en standardmall, sample_template.
Om sample_template inte är tillgängligt för dig går du vidare till Alternativ 2. Avancerade användare finns på sidan Mallar för att förstå hur du skickar en annan mall med alternativ 1.

Med Messages SDK kan Contoso skicka mallade WhatsApp-meddelanden till WhatsApp-användare. Om du vill skicka mallmeddelanden nedan krävs information:

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

Nu måste användaren svara på mallmeddelandet. Från WhatsApp-användarkontot svarar du på mallmeddelandet som tagits emot från WhatsApp Business-kontot. Innehållet i meddelandet är irrelevant för det här scenariot.

Viktigt!

Mottagaren måste svara på mallmeddelandet för att starta konversationen innan text- eller mediemeddelande kan levereras till mottagaren.

(Alternativ 2) Initiera konversation från användare

Det andra alternativet för att initiera en konversation mellan ett WhatsApp Business-konto och en WhatsApp-användare är att låta användaren initiera konversationen. Det gör du genom att skicka ett meddelande till ditt företagsnummer (avsändar-ID) från ditt personliga WhatsApp-konto.

En WhatsApp-konversation som visas på webben och som visar ett användarmeddelande som skickats till WhatsApp Business-kontonumret.

Skicka ett textmeddelande till en WhatsApp-användare

Meddelanden SDK tillåter Contoso att skicka text WhatsApp-meddelanden, som initierade WhatsApp-användare initierade. Om du vill skicka sms nedan krävs information:

Viktigt!

Om du vill skicka ett sms till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

I det här exemplet svarar vi WhatsApp-användaren med texten "Tack för din feedback.\n Från Meddelandemeddelande-SDK".

Montera och skicka sedan textmeddelandet:

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

Skicka ett mediemeddelande till en WhatsApp-användare

Med Messages SDK kan Contoso skicka mediemeddelanden (bild, video, ljud eller dokument) till WhatsApp-användare. Om du vill skicka ett inbäddat mediemeddelande behöver du:

Viktigt!

Om du vill skicka ett mediemeddelande till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

Viktigt!

Från och med SDK version 1.1.0 MediaNotificationContent är inaktuell för bilder. Vi rekommenderar att du använder ImageNotificationContent för att skicka bilder och utforska andra innehållsspecifika klasser för andra medietyper som DocumentNotificationContent, VideoNotificationContentoch AudioNotificationContent.

Skicka ett bildmeddelande

Montera och skicka sedan avbildningsmeddelandet:

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

Skicka ett videomeddelande

Montera och skicka sedan videomeddelandet:

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

Skicka ett ljudmeddelande

Montera och skicka sedan ljudmeddelandet:

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

Skicka ett dokumentmeddelande

Montera och skicka sedan dokumentmeddelandet:

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

Kör koden

  1. Navigera till katalogen som innehåller pom.xml-filen och kompilera projektet med hjälp mvn av kommandot .

    mvn compile
    
  2. Kör appen genom att köra följande mvn kommando.

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

Full exempelkod

Hitta den färdiga koden för den här snabbstarten på GitHub.

Förutsättningar

Konfigurera

Utför stegen i följande avsnitt för att konfigurera en miljö för att skicka meddelanden.

Skapa ett nytt Node.js-program

  1. Skapa en ny katalog för din app och navigera till den genom att öppna terminalen eller kommandofönstret och kör sedan följande kommando.

    mkdir advance-messages-quickstart && cd advance-messages-quickstart
    
  2. Kör följande kommando för att skapa en package.json fil med standardinställningar.

    npm init -y
    
  3. Använd en textredigerare för att skapa en fil med namnet send-messages.js i projektets rotkatalog.

  4. Lägg till följande kodfragment i filen 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);
    });
    

I följande avsnitt har du lagt till all källkod för den här snabbstarten i den send-messages.js fil som du skapade.

Installera -paketet

npm install Använd kommandot för att installera Azure Communication Services Advance Messaging SDK för JavaScript.

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

Alternativet --save visar biblioteket som ett beroende i din package.json-fil .

Objektmodell

Följande klasser och gränssnitt hanterar några av de viktigaste funktionerna i Azure Communication Services Advance Messaging SDK för JavaScript.

Name beskrivning
MessageClient Den här klassen ansluter till din Azure Communication Services-resurs. Den skickar meddelandena.
MessageTemplate Den här klassen definierar vilken mall du använder och innehållet i mallegenskaperna för ditt meddelande.

Kodexempel

Följ de här stegen för att lägga till nödvändiga kodfragment i huvudfunktionen i din send-messages.js-fil .

Autentisera klienten

Följande kod hämtar anslutningssträng för resursen från en miljövariabel med namnet COMMUNICATION_SERVICES_CONNECTION_STRING med dotenv-paketet.

För enkelhetens skull använder den här snabbstarten en anslutningssträng för att autentisera. I produktionsmiljöer rekommenderar vi att du använder tjänstens huvudnamn.

Hämta anslutningssträng från din Azure Communication Services-resurs i Azure Portal. Till vänster navigerar du till fliken Keys . Kopiera fältet Connection string för Primary key. Anslutningssträng är i formatet endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Skärmbild som visar en Azure Communication Services-resurs i Azure Portal och visar fältet Anslutningssträng i avsnittet Primärnyckel.

Ange miljövariabeln COMMUNICATION_SERVICES_CONNECTION_STRING till värdet för din anslutningssträng.
Öppna ett konsolfönster och ange följande kommando:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Mer information om hur du anger en miljövariabel för systemet finns i Lagra dina anslutningssträng i en miljövariabel.

Om du vill instansiera en MessageClient lägger du till följande kod i Main metoden:

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

Ange kanalregistrerings-ID

GUID för kanalregistrering skapades under kanalregistreringen. Du kan söka efter den i portalen på fliken Kanaler för din Azure Communication Services-resurs.

Skärmbild som visar en Azure Communication Services-resurs i Azure Portal och visar fliken Kanaler. Uppmärksamhet läggs på kopieringsåtgärden för fältet Kanal-ID.

Tilldela den till en variabel med namnet channelRegistrationId.

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

Ange mottagarlista

Du måste ange ett riktigt telefonnummer som har ett WhatsApp-konto associerat med det. Det här WhatsApp-kontot tar emot mall-, text- och mediemeddelanden som skickas i den här snabbstarten. För den här snabbstarten kan det här telefonnumret vara ditt personliga telefonnummer.

Mottagarens telefonnummer kan inte vara det företagstelefonnummer (avsändar-ID) som är associerat med WhatsApp-kanalregistreringen. Avsändar-ID:t visas som avsändare av text- och mediemeddelanden som skickas till mottagaren.

Telefonnumret ska innehålla landskoden. Mer information om telefonnummerformatering finns i WhatsApp-dokumentationen för telefonnummerformat.

Kommentar

Endast ett telefonnummer stöds för närvarande i mottagarlistan.

Skapa mottagarlistan så här:

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

Exempel:

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

Börja skicka meddelanden mellan ett företag och en WhatsApp-användare

Konversationer mellan ett WhatsApp Business-konto och en WhatsApp-användare kan initieras på något av två sätt:

  • Företaget skickar ett mallmeddelande till WhatsApp-användaren.
  • WhatsApp-användaren skickar ett meddelande till företagsnumret.

Oavsett hur konversationen startades kan ett företag bara skicka mallmeddelanden tills användaren skickar ett meddelande till företaget. Först när användaren har skickat ett meddelande till företaget kan företaget skicka text- eller mediemeddelanden till användaren under den aktiva konversationen. När konversationsfönstret på 24 timmar upphör att gälla måste konversationen initieras igen. Mer information om konversationer finns i definitionen på WhatsApp Business Platform.

(Alternativ 1) Initiera konversation från företag – Skicka ett mallmeddelande

Initiera en konversation genom att skicka ett mallmeddelande.

Skapa först ett MessageTemplate med hjälp av värdena för en mall.

Kommentar

Om du vill kontrollera vilka mallar du har tillgängliga kan du läsa anvisningarna i Listmallar. Om du inte har någon mall att använda fortsätter du till Alternativ 2.

Här är MessageTemplate-skapandet med hjälp av en standardmall, sample_template.
Om sample_template inte är tillgängligt för dig går du vidare till Alternativ 2. Avancerade användare finns på sidan Mallar för att förstå hur du skickar en annan mall med alternativ 1.

Med Messages SDK kan Contoso skicka mallade WhatsApp-meddelanden till WhatsApp-användare. Om du vill skicka mallmeddelanden nedan krävs information:

// Assemble the template content
const template = {
    name: "sample_template",
    language: "en_US"
};

Fler exempel på hur du monterar MessageTemplate och hur du skapar en egen mall finns i följande resurs:

Mer information om WhatsApp-krav för mallar finns i API-referenserna för WhatsApp Business Platform:

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

Nu måste användaren svara på mallmeddelandet. Från WhatsApp-användarkontot svarar du på mallmeddelandet som tagits emot från WhatsApp Business-kontot. Innehållet i meddelandet är irrelevant för det här scenariot.

Viktigt!

Mottagaren måste svara på mallmeddelandet för att starta konversationen innan text- eller mediemeddelande kan levereras till mottagaren.

(Alternativ 2) Initiera konversation från användare

Det andra alternativet för att initiera en konversation mellan ett WhatsApp Business-konto och en WhatsApp-användare är att låta användaren initiera konversationen. Det gör du genom att skicka ett meddelande till ditt företagsnummer (avsändar-ID) från ditt personliga WhatsApp-konto.

En WhatsApp-konversation som visas på webben och som visar ett användarmeddelande som skickats till WhatsApp Business-kontonumret.

Skicka ett textmeddelande till en WhatsApp-användare

Meddelanden SDK tillåter Contoso att skicka text WhatsApp-meddelanden, som initierade WhatsApp-användare initierade. Om du vill skicka sms nedan krävs information:

Viktigt!

Om du vill skicka ett sms till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

I det här exemplet svarar vi WhatsApp-användaren med texten "Tack för din feedback.\n Från Meddelandemeddelande-SDK".

Montera och skicka mediemeddelandet:

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

Skicka ett mediemeddelande till en WhatsApp-användare

Med Messages SDK kan Contoso skicka mediemeddelanden (bild, video, ljud eller dokument) till WhatsApp-användare. Om du vill skicka ett inbäddat mediemeddelande behöver du:

Viktigt!

Om du vill skicka ett mediemeddelande till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

Viktigt!

Från och med SDK version 2.0.0 MediaNotificationContent är inaktuell för bilder. Vi rekommenderar att du använder ImageNotificationContent för att skicka bilder och utforska andra innehållsspecifika klasser för andra medietyper som DocumentNotificationContent, VideoNotificationContentoch AudioNotificationContent.

Skicka bildinnehåll

Om du vill skicka ett bildmeddelande anger du en URL till en bild. Exempelvis returnerar

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

Montera och skicka mediemeddelandet:

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

Skicka videoinnehåll

Om du vill skicka ett videomeddelande anger du en URL till en video. Exempelvis returnerar

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

Montera och skicka videomeddelandet:

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

Skicka ljudinnehåll

Om du vill skicka ett ljudmeddelande anger du en URL till en ljudfil. Exempelvis returnerar

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

Montera och skicka ljudmeddelandet:

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

Skicka dokumentinnehåll

Om du vill skicka ett dokumentmeddelande anger du en URL till ett dokument. Exempelvis returnerar

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

Montera och skicka dokumentmeddelandet:

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

Kör koden

Använd nodkommandot för att köra koden som du lade till i send-messages.js-filen.

node ./send-messages.js

Full exempelkod

Du kan hämta exempelappen från GitHub.

Förutsättningar

Konfigurera

Skapa ett nytt Python-program

I ett terminal- eller konsolfönster skapar du en ny mapp för ditt program och navigerar till den.

mkdir messages-quickstart && cd messages-quickstart

Installera -paketet

Du måste använda Azure Communication Messages-klientbiblioteket för Python version 1.0.0 eller senare.

Kör följande kommando från en konsolprompt:

pip install azure-communication-messages

Konfigurera appramverket

Skapa en ny fil med namnet messages-quickstart.py och lägg till den grundläggande programstrukturen.

type nul > messages-quickstart.py   

Grundläggande programstruktur

import os

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

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

Objektmodell

Följande klasser och gränssnitt hanterar några av de viktigaste funktionerna i Azure Communication Services Messages SDK för Python.

Name beskrivning
NotificationMessagesClient Den här klassen ansluter till din Azure Communication Services-resurs. Den skickar meddelandena.
MessageTemplate Den här klassen definierar vilken mall du använder och innehållet i mallegenskaperna för ditt meddelande.
TemplateNotificationContent Den här klassen definierar "vem" och "vad" för mallmeddelandet som du tänker skicka.
TextNotificationContent Den här klassen definierar "vem" och "vad" för det textmeddelande som du tänker skicka.
ImageNotificationContent Den här klassen definierar "vem" och "vad" för det bildmediemeddelande som du tänker skicka.
DocumentNotificationContent Den här klassen definierar "vem" och "vad" för det dokumentmediemeddelande som du tänker skicka.
VideoNotificationContent Den här klassen definierar "vem" och "vad" för det videomediemeddelande som du tänker skicka.
AudioNotificationContent Den här klassen definierar "vem" och "vad" för det ljudmediemeddelande som du tänker skicka.

Kodexempel

Följ de här stegen för att lägga till nödvändiga kodfragment i messages-quickstart.py Python-programmet.

Autentisera klienten

Meddelanden som skickas görs med NotificationMessagesClient. NotificationMessagesClient autentiseras med hjälp av din anslutningssträng som hämtats från Azure Communication Services-resursen i Azure Portal. Mer information om anslutningssträng finns i access-your-connection-strings-and-service-endpoints.

Hämta Azure Communication Resource anslutningssträng från Azure Portal enligt skärmbilden. Till vänster går du till fliken Keys . Kopiera fältet Connection string för primärnyckeln. Anslutningssträng är i formatet endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Skärmbild som visar en Azure Communication Services-resurs i Azure Portal och visar fältet Primärnyckel i avsnittet Nycklar.

Ange miljövariabeln COMMUNICATION_SERVICES_CONNECTION_STRING till värdet för din anslutningssträng.
Öppna ett konsolfönster och ange följande kommando:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

När du har lagt till miljövariabeln kan du behöva starta om alla program som körs och som behöver läsa miljövariabeln, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Mer information om hur du anger en miljövariabel för systemet finns i Lagra dina anslutningssträng i en miljövariabel.

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

Ange kanalregistrerings-ID

GUID för kanalregistrering skapades under kanalregistreringen. Du kan söka efter den i portalen på fliken Kanaler för din Azure Communication Services-resurs.

Skärmbild som visar en Azure Communication Services-resurs i Azure Portal och visar fliken Kanaler. Uppmärksamhet läggs på kopieringsåtgärden för fältet Kanal-ID.

Tilldela den till en variabel med namnet channelRegistrationId.

    channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")

Ange mottagarlista

Du måste ange ett riktigt telefonnummer som har ett WhatsApp-konto associerat med det. Det här WhatsApp-kontot tar emot mall-, text- och mediemeddelanden som skickas i den här snabbstarten. För den här snabbstarten kan det här telefonnumret vara ditt personliga telefonnummer.

Mottagarens telefonnummer kan inte vara det företagstelefonnummer (avsändar-ID) som är associerat med WhatsApp-kanalregistreringen. Avsändar-ID:t visas som avsändare av text- och mediemeddelanden som skickas till mottagaren.

Telefonnumret ska innehålla landskoden. Mer information om telefonnummerformatering finns i WhatsApp-dokumentationen för telefonnummerformat.

Kommentar

Endast ett telefonnummer stöds för närvarande i mottagarlistan.

Ange mottagarlistan så här:

    phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")

Användningsexempel:

    # Example only
    to=[self.phone_number],

Börja skicka meddelanden mellan ett företag och en WhatsApp-användare

Konversationer mellan ett WhatsApp Business-konto och en WhatsApp-användare kan initieras på något av två sätt:

  • Företaget skickar ett mallmeddelande till WhatsApp-användaren.
  • WhatsApp-användaren skickar ett meddelande till företagsnumret.

Oavsett hur konversationen startades kan ett företag bara skicka mallmeddelanden tills användaren skickar ett meddelande till företaget. Först när användaren har skickat ett meddelande till företaget kan företaget skicka text- eller mediemeddelanden till användaren under den aktiva konversationen. När konversationsfönstret på 24 timmar upphör att gälla måste konversationen initieras igen. Mer information om konversationer finns i definitionen på WhatsApp Business Platform.

(Alternativ 1) Initiera konversation från företag – Skicka ett mallmeddelande

Initiera en konversation genom att skicka ett mallmeddelande.

Skapa först ett MessageTemplate med hjälp av värdena för en mall.

Kommentar

Om du vill kontrollera vilka mallar du har tillgängliga kan du läsa anvisningarna i Listmallar. Om du inte har någon mall att använda fortsätter du till Alternativ 2.

Här är MessageTemplate-skapandet med hjälp av en standardmall, sample_template.
Om sample_template inte är tillgängligt för dig går du vidare till Alternativ 2. Avancerade användare finns på sidan Mallar för att förstå hur du skickar en annan mall med alternativ 1.

Med Messages SDK kan Contoso skicka mallade WhatsApp-meddelanden till WhatsApp-användare. Om du vill skicka mallmeddelanden nedan krävs information:

Fler exempel på hur du monterar MessageTemplate och hur du skapar en egen mall finns i följande resurs:

Mer information om WhatsApp-krav för mallar finns i API-referenserna för WhatsApp Business Platform:

Om du vill skicka WhatsApp-mallmeddelande lägger du till angiven kod i funktionen 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")

Lägg till anropet send_template_message() till huvudmetoden.

    # Calling send_template_message()
    messages.send_template_message()

Nu måste användaren svara på mallmeddelandet. Från WhatsApp-användarkontot svarar du på mallmeddelandet som tagits emot från WhatsApp Business-kontot. Innehållet i meddelandet är irrelevant för det här scenariot.

Viktigt!

Mottagaren måste svara på mallmeddelandet för att starta konversationen innan text- eller mediemeddelande kan levereras till mottagaren.

(Alternativ 2) Initiera konversation från användare

Det andra alternativet för att initiera en konversation mellan ett WhatsApp Business-konto och en WhatsApp-användare är att låta användaren initiera konversationen. Det gör du genom att skicka ett meddelande till ditt företagsnummer (avsändar-ID) från ditt personliga WhatsApp-konto.

En WhatsApp-konversation som visas på webben och som visar ett användarmeddelande som skickats till WhatsApp Business-kontonumret.

Skicka ett textmeddelande till en WhatsApp-användare

Meddelanden SDK tillåter Contoso att skicka text WhatsApp-meddelanden, som initierade WhatsApp-användare initierade. Om du vill skicka sms nedan krävs information:

Viktigt!

Om du vill skicka ett sms till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

I det här exemplet svarar vi WhatsApp-användaren med texten "Tack för din feedback.\n Från Meddelandemeddelande-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")

Om du vill köra send_text_message() uppdaterar du huvudmetoden

    #Calling send_text_message()
    messages.send_text_message()

Skicka ett bildmediemeddelande till en WhatsApp-användare

Med Messages SDK kan Contoso skicka Image WhatsApp-meddelanden till WhatsApp-användare. Om du vill skicka inbäddade avbildningsmeddelanden nedan krävs information:

Viktigt!

Om du vill skicka ett sms till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

Ett exempel på media_uri som används för att skicka Media WhatsApp-meddelande.

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

Om du vill köra send_text_message() uppdaterar du huvudmetoden

    # Calling send_image_message()
    messages.send_image_message()

Skicka ett dokumentmediemeddelande till en WhatsApp-användare

Med Messages SDK kan Contoso skicka Image WhatsApp-meddelanden till WhatsApp-användare. Om du vill skicka inbäddade avbildningsmeddelanden nedan krävs information:

Viktigt!

Om du vill skicka ett dokumentmeddelande till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

Ett exempel på media_uri som används för att skicka Media WhatsApp-meddelande.

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

Om du vill köra send_text_message() uppdaterar du huvudmetoden

    # Calling send_image_message()
    messages.send_image_message()

Skicka ett ljudmediemeddelande till en WhatsApp-användare

Med Messages SDK kan Contoso skicka Image WhatsApp-meddelanden till WhatsApp-användare. Om du vill skicka inbäddade avbildningsmeddelanden nedan krävs information:

Viktigt!

Om du vill skicka ett ljudmeddelande till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

Ett exempel på media_uri som används för att skicka Media WhatsApp-meddelande.

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

Om du vill köra send_text_message() uppdaterar du huvudmetoden

    # Calling send_image_message()
    messages.send_image_message()

Skicka ett videomediemeddelande till en WhatsApp-användare

Med Messages SDK kan Contoso skicka Image WhatsApp-meddelanden till WhatsApp-användare. Om du vill skicka inbäddade avbildningsmeddelanden nedan krävs information:

Viktigt!

Om du vill skicka ett videomeddelande till en WhatsApp-användare måste WhatsApp-användaren först skicka ett meddelande till WhatsApp Business-kontot. Mer information finns i Börja skicka meddelanden mellan företag och WhatsApp-användare.

Ett exempel på media_uri som används för att skicka Media WhatsApp-meddelande.

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

Om du vill köra send_text_message() uppdaterar du huvudmetoden

    # Calling send_image_message()
    messages.send_image_message()

Kör koden

Om du vill köra koden kontrollerar du att du finns i katalogen där messages-quickstart.py filen finns.

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

Full exempelkod

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

Kommentar

Uppdatera alla platshållarvariabler i koden ovan.

Andra exempel

Du kan granska och ladda ned andra exempelkoder för Python Messages SDK på GitHub.

Nästa steg

I den här snabbstarten provade du Advanced Messaging for WhatsApp SDK. Härnäst kanske du också vill se följande artiklar: