Hızlı Başlangıç: Gelişmiş İletiler kullanarak WhatsApp iletileri gönderme

Azure İletişim Hizmetleri, WhatsApp iletileri gönderip almanızı sağlar. Bu hızlı başlangıçta uygulamanızı Azure İletişim Gelişmiş İletiler SDK'sı ile tümleştirmeye başlayın ve WhatsApp iletileri göndermeye/almaya başlayın. Bu hızlı başlangıcı tamamladığınızda Azure hesabınıza birkaç sentlik (ABD doları cinsinden) veya daha düşük bir ücret yansıtılır.

Önkoşullar

Ayarlama

.NET projesini oluşturma

Projenizi oluşturmak için Visual Studio kullanarak .NET konsol uygulaması oluşturma öğreticisini izleyin.

Kodunuzu derlemek için Ctrl F7 tuşlarına+basın.

paketini yükleyin

Azure.Communication.Messages NuGet paketini C# projenize yükleyin.

  1. adresinde NuGet Paket Yöneticisi Project>Manage NuGet Packages...açın.
  2. paketini Azure.Communication.Messagesarayın.
  3. En son sürümü yükleyin.

Uygulama çerçevesini ayarlama

Program.cs dosyasını bir metin düzenleyicisinde açın.

Program.cs içeriğini aşağıdaki kodla değiştirin:

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

Gelişmiş Mesajlaşma özelliklerini kullanmak için ad alanını içerecek Azure.Communication.Messages bir using yönerge ekleriz.

using Azure.Communication.Messages;

Nesne modeli

Aşağıdaki sınıflar ve arabirimler .NET için Azure İletişim Hizmetleri Advance Messaging SDK'sının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
NotificationMessagesClient Bu sınıf Azure İletişim Hizmetleri kaynağınıza bağlanır. İletileri gönderir.
MessageTemplate Bu sınıf, hangi şablonu kullandığınızı ve iletiniz için şablon özelliklerinin içeriğini tanımlar.
TemplateNotificationContent Bu sınıf, göndermek istediğiniz şablon iletisinin "who" ve "what" ifadelerini tanımlar.
TextNotificationContent Bu sınıf, göndermek istediğiniz metin iletisinin "who" ve "what" ifadelerini tanımlar.
MediaNotificationContent Bu sınıf, göndermek istediğiniz medya iletisinin "who" ve "what" ifadelerini tanımlar.

Kod örnekleri

gerekli kod parçacıklarını Program.cs dosyanızın Main işlevine eklemek için bu adımları izleyin.

İstemcinin kimliğini doğrulama

NotificationMessagesClient, Azure İletişim Hizmetleri kaynağınıza bağlanmak için kullanılır.

Kolaylık olması için bu hızlı başlangıçta kimlik doğrulaması için bir bağlantı dizesi kullanılır. Üretim ortamlarında hizmet sorumlularının kullanılmasını öneririz.

Azure portalında Azure İletişim Hizmetleri kaynağınızdan bağlantı dizesi alın. Sol tarafta sekmeye Keys gidin. Birincil anahtarın Connection string alanını kopyalayın. bağlantı dizesi biçimindedirendpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Azure portalında 'Birincil anahtar' bölümündeki 'Bağlantı dizesi' alanını görüntüleyen bir Azure İletişim Hizmetleri kaynağını gösteren ekran görüntüsü.

Ortam değişkenini COMMUNICATION_SERVICES_CONNECTION_STRING bağlantı dizesi değerine ayarlayın.
Bir konsol penceresi açın ve aşağıdaki komutu girin:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Ortam değişkenini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.

Sisteminiz için ortam değişkeni ayarlama hakkında daha fazla bilgi için bağlantı dizesi bir ortam değişkeninde depolama sayfasındaki adımları izleyin.

örneğini NotificationMessagesClientoluşturmak için yöntemine Main aşağıdaki kodu ekleyin:

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

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

Kanal kayıt kimliğini ayarlama

Kanal kaydı sırasında Kanal Kayıt Kimliği GUID'si oluşturuldu. Bunu portalda Azure İletişim Hizmetleri kaynağınızın Kanallar sekmesinden arayabilirsiniz.

Azure portalında bir Azure İletişim Hizmetleri kaynağını gösteren ve 'Kanallar' sekmesini görüntüleyen ekran görüntüsü. 'Kanal Kimliği' alanının kopyalama eylemine dikkat edin.

Bunu channelRegistrationId adlı bir değişkene atayın.

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

Alıcı listesini ayarla

Kendisiyle ilişkilendirilmiş bir WhatsApp hesabı olan gerçek bir telefon numarası sağlamanız gerekir. Bu WhatsApp hesabı, bu hızlı başlangıçta gönderilen şablonu, metni ve medya iletilerini alır. Bu hızlı başlangıçta, bu telefon numarası kişisel telefon numaranız olabilir.

Alıcı telefon numarası, WhatsApp kanal kaydıyla ilişkilendirilmiş iş telefonu numarası (Gönderen Kimliği) olamaz. Gönderen Kimliği, alıcıya gönderilen metin ve medya iletilerinin göndereni olarak görünür.

Telefon numarası ülke kodunu içermelidir. Telefon numarası biçimlendirmesi hakkında daha fazla bilgi için Bkz. Telefon Numarası Biçimleri için WhatsApp belgeleri.

Not

Şu anda alıcı listesinde yalnızca bir telefon numarası desteklenmektedir.

Alıcı listesini şu şekilde oluşturun:

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

Örnek:

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

İşletme ile WhatsApp kullanıcısı arasında ileti göndermeye başlama

Bir WhatsApp Business Hesabı ile Bir WhatsApp kullanıcısı arasındaki konuşmalar iki yoldan biriyle başlatılabilir:

  • İşletme, WhatsApp kullanıcısına bir şablon iletisi gönderir.
  • WhatsApp kullanıcısı iş numarasına herhangi bir ileti gönderir.

Konuşmanın nasıl başlatıldığına bakılmaksızın, bir işletme yalnızca kullanıcı işletmeye ileti gönderene kadar şablon iletileri gönderebilir. Yalnızca kullanıcı işletmeye bir ileti gönderdikten sonra, işletmenin etkin konuşma sırasında kullanıcıya metin veya medya iletileri göndermesine izin verilir. 24 saatlik konuşma penceresinin süresi dolduktan sonra konuşmanın yeniden başlatılması gerekir. Konuşmalar hakkında daha fazla bilgi edinmek için WhatsApp İş Platformu'ndaki tanıma bakın.

(Seçenek 1) İş yerinden konuşma başlatma - Şablon iletisi gönderme

Şablon iletisi göndererek konuşma başlatın.

İlk olarak, bir şablonun değerlerini kullanarak bir MessageTemplate oluşturun.

Not

Hangi şablonları kullanabileceğinizi denetlemek için, Liste şablonları başlığındaki yönergelere bakın. Kullanılacak bir şablonunuz yoksa Seçenek 2'ye geçin.

Varsayılan şablon sample_templateolan kullanılarak MessageTemplate oluşturma aşağıdadır.
Sizin için uygun değilse sample_template Seçenek 2'ye atlayın. Gelişmiş kullanıcılar için, Seçenek 1 ile farklı bir şablon göndermeyi anlamak için Şablonlar sayfasına bakın.

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına şablonlu WhatsApp iletileri göndermesine olanak tanır. Şablon iletisi göndermek için şunları yapmanız gerekir:

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

MessageTemplate'ınızı derleme ve kendi şablonunuzu oluşturma hakkında daha fazla örnek için aşağıdaki kaynağa bakın:

Şablonlarla ilgili diğer WhatsApp gereksinimleri için Bkz. WhatsApp İş Platformu API'sinin başvuruları:

Derleyin ve şablon iletisini gönderin:

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

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

Şimdi, kullanıcının şablon iletisini yanıtlaması gerekir. WhatsApp kullanıcı hesabından, WhatsApp Business Hesabından alınan şablon iletisini yanıtlayın. İletinin içeriği bu senaryo için ilgisizdir.

Önemli

Kısa mesaj veya medya iletisinin alıcıya teslim edilebilmesi için önce alıcının konuşma başlatması için şablon iletisine yanıt vermesi gerekir.

(Seçenek 2) Kullanıcıdan konuşma başlatma

WhatsApp Business Hesabı ile WhatsApp kullanıcısı arasında konuşma başlatmanın diğer seçeneği, kullanıcının konuşmayı başlatmasını sağlamaktır. Bunu yapmak için, kişisel WhatsApp hesabınızdan iş numaranıza (Gönderen Kimliği) bir ileti gönderin.

Web'de görüntülenen ve WhatsApp Business Hesabı numarasına gönderilen bir kullanıcı iletisini gösteren bir WhatsApp konuşması.

WhatsApp kullanıcısına kısa mesaj gönderme

İletiler SDK'sı, Contoso'nun WhatsApp kullanıcılarının başlattığı WhatsApp kısa mesajları göndermesine olanak tanır. Kısa mesaj göndermek için şunları yapmanız gerekir:

Önemli

WhatsApp kullanıcısına kısa mesaj göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Bu örnekte, WhatsApp kullanıcısına "Geri bildiriminiz için teşekkürler.\n Bildirim İletisi SDK'sından" metniyle yanıtlıyoruz.

Derleme yapın ve ardından kısa mesajı gönderin:

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

WhatsApp kullanıcısına medya iletisi gönderme

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına WhatsApp medya iletileri göndermesine olanak tanır. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

Önemli

WhatsApp kullanıcısına kısa mesaj göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Önemli

SDK sürüm 1.1.0 MediaNotificationContent itibarıyla görüntüler için kullanım dışı bırakılmaktadır. Görüntü göndermek için kullanmanızı ImageNotificationContent ve , VideoNotificationContentve AudioNotificationContentgibi DocumentNotificationContentdiğer medya türleri için içeriğe özgü diğer sınıfları keşfetmenizi öneririz.

Aşağıda görüntüler, belgeler, videolar ve ses dosyaları gibi farklı türlerde medya iletileri göndermeye yönelik örnek kod parçacıkları verilmiştir.

Görüntü içeriği gönderme

Görüntü iletisini derle:

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

Görüntü iletisini gönderin:

var imageResponse = await notificationMessagesClient.SendAsync(imageNotificationContent);

Belge gönderme

Belge içeriğini derle:

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

Belge iletisini gönderin:

var documentResponse = await notificationMessagesClient.SendAsync(documentNotificationContent);

Video içeriği gönderme

Video iletisini derle:

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

Video iletisini gönderin:

var videoResponse = await notificationMessagesClient.SendAsync(videoNotificationContent);

Ses içeriği gönderme

Sesli iletiyi derle:

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

Sesli iletiyi gönderin:

var audioResponse = await notificationMessagesClient.SendAsync(audioNotificationContent);

Kodu çalıştırma

Programınızı derleyin ve çalıştırın.

WhatsApp kullanıcısına kısa mesaj veya medya iletisi göndermek için WhatsApp Business Hesabı ile WhatsApp kullanıcısı arasında etkin bir konuşma olmalıdır.
Etkin bir konuşmanız yoksa, bu hızlı başlangıcın amaçları doğrultusunda, şablon iletisini gönderme ile metin iletisini gönderme arasında bir bekleme eklemeniz gerekir. Bu ek gecikme, kullanıcının WhatsApp hesabındaki işletmeyi yanıtlamak için yeterli zaman sağlar. Başvuru için Örnek koddaki tam örnek, sonraki iletiyi göndermeden önce el ile kullanıcı girişi ister.

Başarılı olursa, kullanıcının WhatsApp hesabında üç ileti alırsınız.

  1. Kodunuzu derlemek için Ctrl F7 tuşlarına+basın.
  2. Programı hata ayıklamadan çalıştırmak için Ctrl F5 tuşlarına+basın.

Tam örnek kod

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

Önkoşullar

Ayarlama

İleti göndermek üzere bir ortam ayarlamak için aşağıdaki bölümlerde yer alan adımları uygulayın.

Yeni java uygulaması oluşturma

Terminalinizi veya komut pencerenizi açın ve Java uygulamanızı oluşturmak istediğiniz dizine gidin. Maven-archetype-quickstart şablonundan Java projesi oluşturmak için aşağıdaki komutu çalıştırın.

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

Hedef, generate değerle aynı ada artifactId sahip bir dizin oluşturur. Bu dizin altında src /main/java dizini proje kaynak kodunu, src/test/java dizini test kaynağını ve pom.xml dosyası projenin Proje Nesne Modeli'ni (POM) içerir.

paketini yükleyin

metin düzenleyicinizde pom.xml dosyasını açın. Aşağıdaki bağımlılık öğesini bağımlılık grubuna ekleyin.

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

Uygulama çerçevesini ayarlama

Metin düzenleyicisinde /src/main/java/com/communication/quickstart/App.java açın, içeri aktarma yönergeleri ekleyin ve deyimini System.out.println("Hello world!"); kaldırın:

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

Nesne modeli

Aşağıdaki sınıflar ve arabirimler Java için Azure İletişim Hizmetleri Advance Messaging SDK'sının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
NotificationMessagesClientBuilder Bu sınıf, Bildirim İletileri İstemcisi'ni oluşturur. Bunu bir uç nokta ve kimlik bilgileriyle sağlarsınız.
NotificationMessagesClient Bu sınıf, WhatsApp iletileri göndermek ve medya dosyalarını indirmek için gereklidir.
NotificationMessagesAsyncClient Bu sınıf, WhatsApp iletileri göndermek ve zaman uyumsuz olarak medya dosyalarını indirmek için gereklidir.
SendMessageResult Bu sınıf, bildirim iletisi göndermek için Advance Messaging hizmetinin sonucunu içerir.
MessageTemplateClientBuilder Bu sınıf İleti Şablonu İstemcisi'ni oluşturur. Bunu bir uç nokta ve kimlik bilgileriyle sağlarsınız.
MessageTemplateClient Bu sınıf, WhatsApp şablonlarının listesini almak için gereklidir.
MessageTemplateAsyncClient WhatsApp şablonlarının listesini zaman uyumsuz olarak almak için bu sınıf gereklidir.

Kod örnekleri

gerekli kod parçacıklarını App.java dosyanızın ana işlevine eklemek için bu adımları izleyin.

İstemcinin kimliğini doğrulama

İleti istemcisinin kimliğini doğrulamak için kullanabileceğim birkaç farklı seçenek vardır:

bir istemcinin kimliğini doğrulamak için, bağlantı dizesi ile bir NotificationMessagesClient veya MessageTemplateClient örneği oluşturursunuz. İstemciyi, arabirimini uygulayan com.azure.core.http.HttpClient herhangi bir özel HTTP istemcisiyle de başlatabilirsiniz.

Kolaylık olması için bu hızlı başlangıçta kimlik doğrulaması için bir bağlantı dizesi kullanılır. Üretim ortamlarında hizmet sorumlularının kullanılmasını öneririz.

Azure portalında Azure İletişim Hizmetleri kaynağınızdan bağlantı dizesi alın. Sol tarafta, sekmesine Keys gidin. için Primary keyalanını kopyalayınConnection string. bağlantı dizesi biçimindedirendpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Azure portalında 'Birincil anahtar' bölümündeki 'Bağlantı dizesi' alanını görüntüleyen bir Azure İletişim Hizmetleri kaynağını gösteren ekran görüntüsü.

Ortam değişkenini COMMUNICATION_SERVICES_CONNECTION_STRING bağlantı dizesi değerine ayarlayın.
Bir konsol penceresi açın ve aşağıdaki komutu girin:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Sisteminiz için ortam değişkeni ayarlama hakkında daha fazla bilgi için bağlantı dizesi bir ortam değişkeninde depolama sayfasındaki adımları izleyin.

NotificationMessagesClient örneği oluşturmak için yöntemine main aşağıdaki kodu ekleyin:

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

Kanal kayıt kimliğini ayarlama

Kanal kaydı sırasında Kanal Kayıt Kimliği GUID'si oluşturuldu. Bunu portalda Azure İletişim Hizmetleri kaynağınızın Kanallar sekmesinden arayabilirsiniz.

Azure portalında bir Azure İletişim Hizmetleri kaynağını gösteren ve 'Kanallar' sekmesini görüntüleyen ekran görüntüsü. 'Kanal Kimliği' alanının kopyalama eylemine dikkat edin.

Bunu channelRegistrationId adlı bir değişkene atayın.

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

Alıcı listesini ayarla

Kendisiyle ilişkilendirilmiş bir WhatsApp hesabı olan gerçek bir telefon numarası sağlamanız gerekir. Bu WhatsApp hesabı, bu hızlı başlangıçta gönderilen metin ve medya iletilerini alır. Bu hızlı başlangıçta, bu telefon numarası kişisel telefon numaranız olabilir.

Alıcı telefon numarası, WhatsApp kanal kaydıyla ilişkilendirilmiş iş telefonu numarası (Gönderen Kimliği) olamaz. Gönderen Kimliği, alıcıya gönderilen metin ve medya iletilerinin göndereni olarak görünür.

Telefon numarası ülke kodunu içermelidir. Telefon numarası biçimlendirmesi hakkında daha fazla bilgi için Bkz. Telefon Numarası Biçimleri için WhatsApp belgeleri.

Not

Şu anda alıcı listesinde yalnızca bir telefon numarası desteklenmektedir.

Alıcı listesini şu şekilde oluşturun:

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

Örnek:

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

İşletme ile WhatsApp kullanıcısı arasında ileti göndermeye başlama

Bir WhatsApp Business Hesabı ile Bir WhatsApp kullanıcısı arasındaki konuşmalar iki yoldan biriyle başlatılabilir:

  • İşletme, WhatsApp kullanıcısına bir şablon iletisi gönderir.
  • WhatsApp kullanıcısı iş numarasına herhangi bir ileti gönderir.

Konuşmanın nasıl başlatıldığına bakılmaksızın, bir işletme yalnızca kullanıcı işletmeye ileti gönderene kadar şablon iletileri gönderebilir. Yalnızca kullanıcı işletmeye bir ileti gönderdikten sonra, işletmenin etkin konuşma sırasında kullanıcıya metin veya medya iletileri göndermesine izin verilir. 24 saatlik konuşma penceresinin süresi dolduktan sonra konuşmanın yeniden başlatılması gerekir. Konuşmalar hakkında daha fazla bilgi edinmek için WhatsApp İş Platformu'ndaki tanıma bakın.

(Seçenek 1) İş yerinden konuşma başlatma - Şablon iletisi gönderme

Şablon iletisi göndererek konuşma başlatın.

İlk olarak, bir şablonun değerlerini kullanarak bir MessageTemplate oluşturun.

Not

Hangi şablonları kullanabileceğinizi denetlemek için, Liste şablonları başlığındaki yönergelere bakın. Kullanılacak bir şablonunuz yoksa Seçenek 2'ye geçin.

Varsayılan şablon sample_templateolan kullanılarak MessageTemplate oluşturma aşağıdadır.
Sizin için uygun değilse sample_template Seçenek 2'ye atlayın. Gelişmiş kullanıcılar için, Seçenek 1 ile farklı bir şablon göndermeyi anlamak için Şablonlar sayfasına bakın.

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına şablonlu WhatsApp iletileri göndermesine olanak tanır. Şablon iletileri göndermek için aşağıdaki ayrıntılar gereklidir:

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

Şimdi, kullanıcının şablon iletisini yanıtlaması gerekir. WhatsApp kullanıcı hesabından, WhatsApp Business Hesabından alınan şablon iletisini yanıtlayın. İletinin içeriği bu senaryo için ilgisizdir.

Önemli

Kısa mesaj veya medya iletisinin alıcıya teslim edilebilmesi için önce alıcının konuşma başlatması için şablon iletisine yanıt vermesi gerekir.

(Seçenek 2) Kullanıcıdan konuşma başlatma

WhatsApp Business Hesabı ile WhatsApp kullanıcısı arasında konuşma başlatmanın diğer seçeneği, kullanıcının konuşmayı başlatmasını sağlamaktır. Bunu yapmak için, kişisel WhatsApp hesabınızdan iş numaranıza (Gönderen Kimliği) bir ileti gönderin.

Web'de görüntülenen ve WhatsApp Business Hesabı numarasına gönderilen bir kullanıcı iletisini gösteren bir WhatsApp konuşması.

WhatsApp kullanıcısına kısa mesaj gönderme

İletiler SDK'sı, Contoso'nun WhatsApp kullanıcılarının başlattığı WhatsApp iletilerini göndermesine olanak tanır. Kısa mesaj göndermek için aşağıdaki ayrıntılar gereklidir:

Önemli

WhatsApp kullanıcısına kısa mesaj göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Bu örnekte, WhatsApp kullanıcısına "Geri bildiriminiz için teşekkürler.\n Bildirim İletisi SDK'sından" metniyle yanıtlıyoruz.

Derleme yapın ve ardından kısa mesajı gönderin:

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

WhatsApp kullanıcısına medya iletisi gönderme

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına medya (Görüntü, Video, Ses veya Belge) iletileri göndermesine olanak tanır. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

Önemli

WhatsApp kullanıcısına medya iletisi göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Önemli

SDK sürüm 1.1.0 MediaNotificationContent itibarıyla görüntüler için kullanım dışı bırakılmaktadır. Görüntü göndermek için kullanmanızı ImageNotificationContent ve , VideoNotificationContentve AudioNotificationContentgibi DocumentNotificationContentdiğer medya türleri için içeriğe özgü diğer sınıfları keşfetmenizi öneririz.

Resim İletisi Gönderme

Görüntü iletisini derleyin ve gönderin:

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

Görüntülü İleti Gönderme

Derleyin ve ardından video iletisini gönderin:

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

Sesli İleti Gönderme

Ses iletisini derleyin ve gönderin:

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

Belge İletisi Gönderme

Derleme yapın ve belge iletisini gönderin:

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

Kodu çalıştırma

  1. pom.xml dosyasını içeren dizine gidin ve komutunu kullanarak projeyi derleyinmvn.

    mvn compile
    
  2. Aşağıdaki mvn komutu yürüterek uygulamayı çalıştırın.

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

Tam örnek kod

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun.

Önkoşullar

Ayarlama

İleti göndermek üzere bir ortam ayarlamak için aşağıdaki bölümlerde yer alan adımları uygulayın.

Yeni bir Node.js uygulaması oluşturma

  1. Uygulamanız için yeni bir dizin oluşturun ve terminalinizi veya komut pencerenizi açarak bu dizine gidin ve aşağıdaki komutu çalıştırın.

    mkdir advance-messages-quickstart && cd advance-messages-quickstart
    
  2. Varsayılan ayarlarla bir package.json dosyası oluşturmak için aşağıdaki komutu çalıştırın.

    npm init -y
    
  3. Proje kök dizininde send-messages.js adlı bir dosya oluşturmak için bir metin düzenleyicisi kullanın.

  4. Dosya send-messages.js aşağıdaki kod parçacığını ekleyin.

    async function main() {
        // Quickstart code goes here.
    }
    
    main().catch((error) => {
        console.error("Encountered an error while sending message: ", error);
        process.exit(1);
    });
    

Aşağıdaki bölümlerde, bu hızlı başlangıcın tüm kaynak kodunu oluşturduğunuz send-messages.js dosyasına eklediniz.

paketini yükleyin

npm install JavaScript için Azure İletişim Hizmetleri Advance Messaging SDK'sını yüklemek için komutunu kullanın.

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

seçeneği--save, kitaplığı package.json dosyanızda bağımlılık olarak listeler.

Nesne modeli

Aşağıdaki sınıflar ve arabirimler JavaScript için Azure İletişim Hizmetleri Advance Messaging SDK'sının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
MessageClient Bu sınıf Azure İletişim Hizmetleri kaynağınıza bağlanır. İletileri gönderir.
MessageTemplate Bu sınıf, hangi şablonu kullandığınızı ve iletiniz için şablon özelliklerinin içeriğini tanımlar.

Kod örnekleri

gerekli kod parçacıklarını send-messages.js dosyanızın ana işlevine eklemek için bu adımları izleyin.

İstemcinin kimliğini doğrulama

Aşağıdaki kod, dotenv paketini kullanarak adlı COMMUNICATION_SERVICES_CONNECTION_STRING bir ortam değişkeninden kaynağın bağlantı dizesi alır.

Kolaylık olması için bu hızlı başlangıçta kimlik doğrulaması için bir bağlantı dizesi kullanılır. Üretim ortamlarında hizmet sorumlularının kullanılmasını öneririz.

Azure portalında Azure İletişim Hizmetleri kaynağınızdan bağlantı dizesi alın. Sol tarafta, sekmesine Keys gidin. için Primary keyalanını kopyalayınConnection string. bağlantı dizesi biçimindedirendpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Azure portalında 'Birincil anahtar' bölümündeki 'Bağlantı dizesi' alanını görüntüleyen bir Azure İletişim Hizmetleri kaynağını gösteren ekran görüntüsü.

Ortam değişkenini COMMUNICATION_SERVICES_CONNECTION_STRING bağlantı dizesi değerine ayarlayın.
Bir konsol penceresi açın ve aşağıdaki komutu girin:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Sisteminiz için ortam değişkeni ayarlama hakkında daha fazla bilgi için bağlantı dizesi bir ortam değişkeninde depolama sayfasındaki adımları izleyin.

MessageClient örneği oluşturmak için yöntemine Main aşağıdaki kodu ekleyin:

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

Kanal kayıt kimliğini ayarlama

Kanal kaydı sırasında Kanal Kayıt Kimliği GUID'si oluşturuldu. Bunu portalda Azure İletişim Hizmetleri kaynağınızın Kanallar sekmesinden arayabilirsiniz.

Azure portalında bir Azure İletişim Hizmetleri kaynağını gösteren ve 'Kanallar' sekmesini görüntüleyen ekran görüntüsü. 'Kanal Kimliği' alanının kopyalama eylemine dikkat edin.

Bunu channelRegistrationId adlı bir değişkene atayın.

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

Alıcı listesini ayarla

Kendisiyle ilişkilendirilmiş bir WhatsApp hesabı olan gerçek bir telefon numarası sağlamanız gerekir. Bu WhatsApp hesabı, bu hızlı başlangıçta gönderilen şablonu, metni ve medya iletilerini alır. Bu hızlı başlangıçta, bu telefon numarası kişisel telefon numaranız olabilir.

Alıcı telefon numarası, WhatsApp kanal kaydıyla ilişkilendirilmiş iş telefonu numarası (Gönderen Kimliği) olamaz. Gönderen Kimliği, alıcıya gönderilen metin ve medya iletilerinin göndereni olarak görünür.

Telefon numarası ülke kodunu içermelidir. Telefon numarası biçimlendirmesi hakkında daha fazla bilgi için Bkz. Telefon Numarası Biçimleri için WhatsApp belgeleri.

Not

Şu anda alıcı listesinde yalnızca bir telefon numarası desteklenmektedir.

Alıcı listesini şu şekilde oluşturun:

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

Örnek:

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

İşletme ile WhatsApp kullanıcısı arasında ileti göndermeye başlama

Bir WhatsApp Business Hesabı ile Bir WhatsApp kullanıcısı arasındaki konuşmalar iki yoldan biriyle başlatılabilir:

  • İşletme, WhatsApp kullanıcısına bir şablon iletisi gönderir.
  • WhatsApp kullanıcısı iş numarasına herhangi bir ileti gönderir.

Konuşmanın nasıl başlatıldığına bakılmaksızın, bir işletme yalnızca kullanıcı işletmeye ileti gönderene kadar şablon iletileri gönderebilir. Yalnızca kullanıcı işletmeye bir ileti gönderdikten sonra, işletmenin etkin konuşma sırasında kullanıcıya metin veya medya iletileri göndermesine izin verilir. 24 saatlik konuşma penceresinin süresi dolduktan sonra konuşmanın yeniden başlatılması gerekir. Konuşmalar hakkında daha fazla bilgi edinmek için WhatsApp İş Platformu'ndaki tanıma bakın.

(Seçenek 1) İş yerinden konuşma başlatma - Şablon iletisi gönderme

Şablon iletisi göndererek konuşma başlatın.

İlk olarak, bir şablonun değerlerini kullanarak bir MessageTemplate oluşturun.

Not

Hangi şablonları kullanabileceğinizi denetlemek için, Liste şablonları başlığındaki yönergelere bakın. Kullanılacak bir şablonunuz yoksa Seçenek 2'ye geçin.

Varsayılan şablon sample_templateolan kullanılarak MessageTemplate oluşturma aşağıdadır.
Sizin için uygun değilse sample_template Seçenek 2'ye atlayın. Gelişmiş kullanıcılar için, Seçenek 1 ile farklı bir şablon göndermeyi anlamak için Şablonlar sayfasına bakın.

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına şablonlu WhatsApp iletileri göndermesine olanak tanır. Şablon iletileri göndermek için aşağıdaki ayrıntılar gereklidir:

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

MessageTemplate'ınızı derleme ve kendi şablonunuzu oluşturma hakkında daha fazla örnek için aşağıdaki kaynağa bakın:

Şablonlarla ilgili diğer WhatsApp gereksinimleri için Bkz. WhatsApp İş Platformu API'sinin başvuruları:

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

Şimdi, kullanıcının şablon iletisini yanıtlaması gerekir. WhatsApp kullanıcı hesabından, WhatsApp Business Hesabından alınan şablon iletisini yanıtlayın. İletinin içeriği bu senaryo için ilgisizdir.

Önemli

Kısa mesaj veya medya iletisinin alıcıya teslim edilebilmesi için önce alıcının konuşma başlatması için şablon iletisine yanıt vermesi gerekir.

(Seçenek 2) Kullanıcıdan konuşma başlatma

WhatsApp Business Hesabı ile WhatsApp kullanıcısı arasında konuşma başlatmanın diğer seçeneği, kullanıcının konuşmayı başlatmasını sağlamaktır. Bunu yapmak için, kişisel WhatsApp hesabınızdan iş numaranıza (Gönderen Kimliği) bir ileti gönderin.

Web'de görüntülenen ve WhatsApp Business Hesabı numarasına gönderilen bir kullanıcı iletisini gösteren bir WhatsApp konuşması.

WhatsApp kullanıcısına kısa mesaj gönderme

İletiler SDK'sı, Contoso'nun WhatsApp kullanıcılarının başlattığı WhatsApp iletilerini göndermesine olanak tanır. Kısa mesaj göndermek için aşağıdaki ayrıntılar gereklidir:

Önemli

WhatsApp kullanıcısına kısa mesaj göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Bu örnekte, WhatsApp kullanıcısına "Geri bildiriminiz için teşekkürler.\n Bildirim İletisi SDK'sından" metniyle yanıtlıyoruz.

Medya iletisini derleyip gönderin:

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

WhatsApp kullanıcısına medya iletisi gönderme

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına medya (Görüntü, Video, Ses veya Belge) iletileri göndermesine olanak tanır. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

Önemli

WhatsApp kullanıcısına medya iletisi göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Önemli

SDK sürüm 2.0.0 itibarıyla MediaNotificationContent görüntüler için kullanım dışı bırakılmaktadır. Görüntü göndermek için kullanmanızı ImageNotificationContent ve , VideoNotificationContentve AudioNotificationContentgibi DocumentNotificationContentdiğer medya türleri için içeriğe özgü diğer sınıfları keşfetmenizi öneririz.

Görüntü içeriği gönderme

Görüntü iletisi göndermek için bir görüntünün URL'sini sağlayın. Örneğin,

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

Medya iletisini derleyip gönderin:

// Send image message
const mediaMessageResult = await client.path("/messages/notifications:send").post({
    contentType: "application/json",
    body: {
        channelRegistrationId: channelRegistrationId,
        to: recipientList,
        kind: "image",
        mediaUri: url
    }
});

// Process result
if (mediaMessageResult.status === "202") {
    mediaMessageResult.body.receipts.forEach((receipt) => {
        console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
    });
} else {
    throw new Error("Failed to send message");
}

Video içeriği gönderme

Video iletisi göndermek için videoya bir URL sağlayın. Örneğin,

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

Video iletisini derleyip gönderin:

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

Ses içeriği gönderme

Sesli ileti göndermek için bir ses dosyasının URL'sini sağlayın. Örneğin,

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

Sesli iletiyi derleyip gönderin:

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

Belge içeriği gönderme

Belge iletisi göndermek için, bir belgenin URL'sini sağlayın. Örneğin,

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

Belge iletisini derleyip gönderin:

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

Kodu çalıştırma

send-messages.js dosyasına eklediğiniz kodu çalıştırmak için node komutunu kullanın.

node ./send-messages.js

Tam örnek kod

Örnek uygulamayı GitHub'dan indirebilirsiniz.

Önkoşullar

Ayarlama

Yeni Python uygulaması oluşturma

Terminal veya konsol penceresinde uygulamanız için yeni bir klasör oluşturun ve bu klasöre gidin.

mkdir messages-quickstart && cd messages-quickstart

paketini yükleyin

Python sürüm 1.0.0 veya üzeri için Azure İletişim İletileri istemci kitaplığını kullanmanız gerekir.

Konsol isteminden aşağıdaki komutu yürütür:

pip install azure-communication-messages

Uygulama çerçevesini ayarlama

adlı messages-quickstart.py yeni bir dosya oluşturun ve temel program yapısını ekleyin.

type nul > messages-quickstart.py   

Temel program yapısı

import os

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

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

Nesne modeli

Aşağıdaki sınıflar ve arabirimler, Python için Azure İletişim Hizmetleri İletileri SDK'sının bazı önemli özelliklerini işler.

Veri Akışı Adı Açıklama
NotificationMessagesClient Bu sınıf Azure İletişim Hizmetleri kaynağınıza bağlanır. İletileri gönderir.
MessageTemplate Bu sınıf, hangi şablonu kullandığınızı ve iletiniz için şablon özelliklerinin içeriğini tanımlar.
TemplateNotificationContent Bu sınıf, göndermek istediğiniz şablon iletisinin "who" ve "what" ifadelerini tanımlar.
TextNotificationContent Bu sınıf, göndermek istediğiniz metin iletisinin "who" ve "what" ifadelerini tanımlar.
ImageNotificationContent Bu sınıf, göndermek istediğiniz görüntü medya iletisinin "who" ve "what" ifadelerini tanımlar.
DocumentNotificationContent Bu sınıf, göndermek istediğiniz Belge medya iletisinin "who" ve "what" ifadelerini tanımlar.
VideoNotificationContent Bu sınıf, göndermek istediğiniz Video medya iletisinin "who" ve "what" ifadelerini tanımlar.
AudioNotificationContent Bu sınıf, göndermek istediğiniz Ses medya iletisinin "who" ve "what" ifadelerini tanımlar.

Kod örnekleri

messages-quickstart.py python programına gerekli kod parçacıklarını eklemek için bu adımları izleyin.

İstemcinin kimliğini doğrulama

İleti gönderme işlemi NotificationMessagesClient kullanılarak yapılır. NotificationMessagesClient, Azure portalındaki Azure İletişim Hizmetleri kaynağından alınan bağlantı dizesi kullanılarak doğrulanır. bağlantı dizesi hakkında daha fazla bilgi için bkz. access-your-connection-strings-and-service-endpoints.

Ekran görüntüsünde gösterildiği gibi Azure portaldan Azure İletişim Kaynağı bağlantı dizesi alın. Sol tarafta sekmeye Keys gidin. Birincil anahtarın Connection string alanını kopyalayın. bağlantı dizesi biçimindedirendpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key}.

Azure portalında 'Anahtarlar' bölümündeki 'Birincil Anahtar' alanını görüntüleyen bir Azure İletişim Hizmetleri kaynağını gösteren ekran görüntüsü.

Ortam değişkenini COMMUNICATION_SERVICES_CONNECTION_STRING bağlantı dizesi değerine ayarlayın.
Bir konsol penceresi açın ve aşağıdaki komutu girin:

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

Ortam değişkenini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenini okuması gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.

Sisteminiz için ortam değişkeni ayarlama hakkında daha fazla bilgi için bağlantı dizesi bir ortam değişkeninde depolama sayfasındaki adımları izleyin.

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

Kanal kayıt kimliğini ayarlama

Kanal kaydı sırasında Kanal Kayıt Kimliği GUID'si oluşturuldu. Bunu portalda Azure İletişim Hizmetleri kaynağınızın Kanallar sekmesinden arayabilirsiniz.

Azure portalında bir Azure İletişim Hizmetleri kaynağını gösteren ve 'Kanallar' sekmesini görüntüleyen ekran görüntüsü. 'Kanal Kimliği' alanının kopyalama eylemine dikkat edin.

Bunu channelRegistrationId adlı bir değişkene atayın.

    channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")

Alıcı listesini ayarla

Kendisiyle ilişkilendirilmiş bir WhatsApp hesabı olan gerçek bir telefon numarası sağlamanız gerekir. Bu WhatsApp hesabı, bu hızlı başlangıçta gönderilen şablonu, metni ve medya iletilerini alır. Bu hızlı başlangıçta, bu telefon numarası kişisel telefon numaranız olabilir.

Alıcı telefon numarası, WhatsApp kanal kaydıyla ilişkilendirilmiş iş telefonu numarası (Gönderen Kimliği) olamaz. Gönderen Kimliği, alıcıya gönderilen metin ve medya iletilerinin göndereni olarak görünür.

Telefon numarası ülke kodunu içermelidir. Telefon numarası biçimlendirmesi hakkında daha fazla bilgi için Bkz. Telefon Numarası Biçimleri için WhatsApp belgeleri.

Not

Şu anda alıcı listesinde yalnızca bir telefon numarası desteklenmektedir.

Alıcı listesini şöyle ayarlayın:

    phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")

Kullanım Örneği:

    # Example only
    to=[self.phone_number],

İşletme ile WhatsApp kullanıcısı arasında ileti göndermeye başlama

Bir WhatsApp Business Hesabı ile Bir WhatsApp kullanıcısı arasındaki konuşmalar iki yoldan biriyle başlatılabilir:

  • İşletme, WhatsApp kullanıcısına bir şablon iletisi gönderir.
  • WhatsApp kullanıcısı iş numarasına herhangi bir ileti gönderir.

Konuşmanın nasıl başlatıldığına bakılmaksızın, bir işletme yalnızca kullanıcı işletmeye ileti gönderene kadar şablon iletileri gönderebilir. Yalnızca kullanıcı işletmeye bir ileti gönderdikten sonra, işletmenin etkin konuşma sırasında kullanıcıya metin veya medya iletileri göndermesine izin verilir. 24 saatlik konuşma penceresinin süresi dolduktan sonra konuşmanın yeniden başlatılması gerekir. Konuşmalar hakkında daha fazla bilgi edinmek için WhatsApp İş Platformu'ndaki tanıma bakın.

(Seçenek 1) İş yerinden konuşma başlatma - Şablon iletisi gönderme

Şablon iletisi göndererek konuşma başlatın.

İlk olarak, bir şablonun değerlerini kullanarak bir MessageTemplate oluşturun.

Not

Hangi şablonları kullanabileceğinizi denetlemek için, Liste şablonları başlığındaki yönergelere bakın. Kullanılacak bir şablonunuz yoksa Seçenek 2'ye geçin.

Varsayılan şablon sample_templateolan kullanılarak MessageTemplate oluşturma aşağıdadır.
Sizin için uygun değilse sample_template Seçenek 2'ye atlayın. Gelişmiş kullanıcılar için, Seçenek 1 ile farklı bir şablon göndermeyi anlamak için Şablonlar sayfasına bakın.

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına şablonlu WhatsApp iletileri göndermesine olanak tanır. Şablon iletileri göndermek için aşağıdaki ayrıntılar gereklidir:

MessageTemplate'ınızı derleme ve kendi şablonunuzu oluşturma hakkında daha fazla örnek için aşağıdaki kaynağa bakın:

Şablonlarla ilgili diğer WhatsApp gereksinimleri için Bkz. WhatsApp İş Platformu API'sinin başvuruları:

WhatsApp şablon iletisi göndermek için verilen kodu send_template_message(self) işlevine ekleyin.

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

main yöntemine send_template_message() çağrısı ekleyin.

    # Calling send_template_message()
    messages.send_template_message()

Şimdi, kullanıcının şablon iletisini yanıtlaması gerekir. WhatsApp kullanıcı hesabından, WhatsApp Business Hesabından alınan şablon iletisini yanıtlayın. İletinin içeriği bu senaryo için ilgisizdir.

Önemli

Kısa mesaj veya medya iletisinin alıcıya teslim edilebilmesi için önce alıcının konuşma başlatması için şablon iletisine yanıt vermesi gerekir.

(Seçenek 2) Kullanıcıdan konuşma başlatma

WhatsApp Business Hesabı ile WhatsApp kullanıcısı arasında konuşma başlatmanın diğer seçeneği, kullanıcının konuşmayı başlatmasını sağlamaktır. Bunu yapmak için, kişisel WhatsApp hesabınızdan iş numaranıza (Gönderen Kimliği) bir ileti gönderin.

Web'de görüntülenen ve WhatsApp Business Hesabı numarasına gönderilen bir kullanıcı iletisini gösteren bir WhatsApp konuşması.

WhatsApp kullanıcısına kısa mesaj gönderme

İletiler SDK'sı, Contoso'nun WhatsApp kullanıcılarının başlattığı WhatsApp iletilerini göndermesine olanak tanır. Kısa mesaj göndermek için aşağıdaki ayrıntılar gereklidir:

Önemli

WhatsApp kullanıcısına kısa mesaj göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Bu örnekte, WhatsApp kullanıcısına "Geri bildiriminiz için teşekkürler.\n Bildirim İletisi SDK'sından" metniyle yanıtlıyoruz.

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

send_text_message() çalıştırmak için main yöntemini güncelleştirin

    #Calling send_text_message()
    messages.send_text_message()

WhatsApp kullanıcısına Görüntü medya iletisi gönderme

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına Görüntü WhatsApp iletileri göndermesine olanak tanır. Resim eklenmiş iletiler göndermek için aşağıdaki ayrıntılar gereklidir:

Önemli

WhatsApp kullanıcısına kısa mesaj göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Medya WhatsApp iletisi gönderirken kullanılan media_uri örneği.

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

send_text_message() çalıştırmak için main yöntemini güncelleştirin

    # Calling send_image_message()
    messages.send_image_message()

WhatsApp kullanıcısına belge medya iletisi gönderme

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına Görüntü WhatsApp iletileri göndermesine olanak tanır. Resim eklenmiş iletiler göndermek için aşağıdaki ayrıntılar gereklidir:

Önemli

Bir WhatsApp kullanıcısına belge iletisi göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Medya WhatsApp iletisi gönderirken kullanılan media_uri örneği.

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

send_text_message() çalıştırmak için main yöntemini güncelleştirin

    # Calling send_image_message()
    messages.send_image_message()

WhatsApp kullanıcısına sesli medya iletisi gönderme

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına Görüntü WhatsApp iletileri göndermesine olanak tanır. Resim eklenmiş iletiler göndermek için aşağıdaki ayrıntılar gereklidir:

Önemli

Bir WhatsApp kullanıcısına sesli ileti göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Medya WhatsApp iletisi gönderirken kullanılan media_uri örneği.

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

send_text_message() çalıştırmak için main yöntemini güncelleştirin

    # Calling send_image_message()
    messages.send_image_message()

WhatsApp kullanıcısına video medya iletisi gönderme

İletiler SDK'sı, Contoso'nın WhatsApp kullanıcılarına Görüntü WhatsApp iletileri göndermesine olanak tanır. Resim eklenmiş iletiler göndermek için aşağıdaki ayrıntılar gereklidir:

Önemli

WhatsApp kullanıcısına görüntülü ileti göndermek için, WhatsApp kullanıcısının önce WhatsApp Business Hesabına bir ileti göndermesi gerekir. Daha fazla bilgi için bkz . İş ve WhatsApp kullanıcısı arasında ileti göndermeye başlama.

Medya WhatsApp iletisi gönderirken kullanılan media_uri örneği.

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

send_text_message() çalıştırmak için main yöntemini güncelleştirin

    # Calling send_image_message()
    messages.send_image_message()

Kodu çalıştırma

Kodu çalıştırmak için dosyanızın messages-quickstart.py bulunduğu dizinde olduğunuzdan emin olun.

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

Tam örnek kod

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

Not

Lütfen yukarıdaki koddaki tüm yer tutucu değişkenleri güncelleştirin.

Diğer Örnekler

GitHub'da Python İletileri SDK'sı için diğer örnek kodları gözden geçirebilir ve indirebilirsiniz.

Sonraki adımlar

Bu hızlı başlangıçta, WhatsApp SDK'sı için Gelişmiş Mesajlaşma'yı denediniz. Ardından aşağıdaki makaleleri de görmek isteyebilirsiniz: