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
WhatsApp Business-konto som registrerats med din Azure Communication Services-resurs
Aktivt WhatsApp-telefonnummer för att ta emot meddelanden
.NET-utvecklingsmiljö (till exempel Visual Studio, Visual Studio Code eller .NET CLI)
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.
- Öppna NuGet Package Manager på
Project
>Manage NuGet Packages...
. - Sök efter paketet
Azure.Communication.Messages
. - 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
- Ange kanalregistrerings-ID
- Ange mottagarlista
- Börja skicka meddelanden mellan ett företag och en WhatsApp-användare
- Skicka ett textmeddelande till en WhatsApp-användare
- Skicka ett mediemeddelande till en WhatsApp-användare
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}
.
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 NotificationMessagesClient
lä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.
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:
- Autentiserad notificationMessagesClient
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- Mallinformation
- Namn som "sample_template"
- Språk som "en_us"
- Eventuella parametrar
// 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.
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:
- Autentiserad notificationMessagesClient
- WhatsApp-kanal-ID
- Mottagarens telefonnummer i E16-format
- Meddelandetext/text som ska skickas
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:
- Autentiserad notificationMessagesClient
- WhatsApp-kanal-ID
- Mottagarens telefonnummer i E16-format
- Mediets URI
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
, VideoNotificationContent
och 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.
- Kompilera koden genom att trycka på Ctrl+F7.
- 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
WhatsApp Business-konto som registrerats med din Azure Communication Services-resurs
Aktivt WhatsApp-telefonnummer för att ta emot meddelanden
Java Development Kit (JDK) version 8 eller senare
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
- Ange kanalregistrerings-ID
- Ange mottagarlista
- Börja skicka meddelanden mellan ett företag och en WhatsApp-användare
- Skicka ett textmeddelande till en WhatsApp-användare
- Skicka ett mediemeddelande till en WhatsApp-användare
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}
.
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.
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- Mallinformation
- Namn som "sample_template"
- Språk som "en_us"
- Eventuella parametrar
// 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.
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- Meddelandetext/text som ska skickas
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- URL för mediet Bild, Video, Dokument eller Ljud
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
, VideoNotificationContent
och 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
Navigera till katalogen som innehåller pom.xml-filen och kompilera projektet med hjälp
mvn
av kommandot .mvn compile
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
WhatsApp Business-konto som registrerats med din Azure Communication Services-resurs
Aktivt WhatsApp-telefonnummer för att ta emot meddelanden
Node.js Active LTS- och Maintenance LTS-versioner (8.11.1 och 10.14.1 rekommenderas)
- I ett terminal- eller kommandofönster kör du
node --version
för att kontrollera att Node.js är installerat
- I ett terminal- eller kommandofönster kör du
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
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
Kör följande kommando för att skapa en package.json fil med standardinställningar.
npm init -y
Använd en textredigerare för att skapa en fil med namnet send-messages.js i projektets rotkatalog.
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
- Ange kanalregistrerings-ID
- Ange mottagarlista
- Börja skicka meddelanden mellan ett företag och en WhatsApp-användare
- Skicka ett textmeddelande till en WhatsApp-användare
- Skicka ett mediemeddelande till en WhatsApp-användare
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}
.
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.
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- Mallinformation
- Namn som "sample_template"
- Språk som "en_us"
- Eventuella parametrar
// 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.
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- Meddelandetext/text som ska skickas
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- URL för mediet Bild, Video, Dokument eller Ljud
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
, VideoNotificationContent
och 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
WhatsApp Business-konto som registrerats med din Azure Communication Services-resurs.
Aktivt WhatsApp-telefonnummer för att ta emot meddelanden.
Python 3.7+ för operativsystemet.
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
- Ange kanalregistrerings-ID
- Ange mottagarlista
- Börja skicka meddelanden mellan ett företag och en WhatsApp-användare
- Skicka ett textmeddelande till en WhatsApp-användare
- Skicka ett mediemeddelande till en WhatsApp-användare
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}
.
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.
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- Mallinformation
- Namn som "sample_template"
- Språk som "en_us"
- Eventuella parametrar
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.
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- Meddelandetext/text som ska skickas
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- MediaUri för bilden
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- MediaUri för dokumentet
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- MediaUri för ljud
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:
- WhatsApp Channel-ID
- Mottagarens telefonnummer i E16-format
- MediaUri för videon
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: