Aracılığıyla paylaş


Metin ve medya WhatsApp iletileri gönderme

Azure İletişim Hizmetleri, WhatsApp iletileri gönderip almanızı sağlar. Bu makalede, WhatsApp iletileri gönderip almaya başlamak için uygulamanızı Azure İletişim Gelişmiş İletiler SDK'sı ile tümleştirme açıklanmaktadır. Bu makaleyi tamamlamak, Azure hesabınızda birkaç ABD kuruşu veya daha az bir maliyete yol açar.

Önkoşullar

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

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

  1. NuGet Paket Yöneticisi Project>Manage NuGet Packages... konumunda açın.
  2. Azure.Communication.Messages paketini arayı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 dosyanızın 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 - Advanced Messages quickstart samples.");

            // Quickstart code goes here
        }
    }
}

Gelişmiş mesajlaşma özelliklerini kullanmak için, using ad alanını içerecek bir Azure.Communication.Messages yönergesi ekleyin.

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.

Sınıf Adı Açıklama
NotificationMessagesClient Azure İletişim Hizmetleri kaynağınıza bağlanır. İletileri gönderir.
MessageTemplate Hangi şablonu kullandığınızı ve iletiniz için şablon özelliklerinin içeriğini tanımlar.
TemplateNotificationContent Göndermek istediğiniz şablon iletisinin "kim" ve "ne" olduğunu tanımlar.
TextNotificationContent Göndermek istediğiniz metin iletisinin "kim" ve "ne" ifadelerini tanımlar.
ImageNotificationContent Göndermek istediğiniz görüntü medya iletisinin "kim" ve "ne" ifadelerini tanımlar.
DocumentNotificationContent Göndermek istediğiniz Belge medya iletisinin "kim" ve "ne" ifadelerini tanımlar.
VideoNotificationContent Göndermek istediğiniz Video medya iletisinin "kim" ve "ne" ifadelerini tanımlar.
AudioNotificationContent Göndermek istediğiniz Ses medya iletisinin "kim" ve "ne" ifadelerini tanımlar.

Not

Daha fazla bilgi için bkz. Azure SDK for .NET başvuru Azure.Communication.Messages Ad Alanı.

Ortak yapılandırma

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

İstemcinin kimliğini doğrulama

İletiler SDK'sı, iletileri göndermek için öğesini NotificationMessagesClient kullanır. NotificationMessagesClient yöntemi, Azure portalındaki Azure İletişim Hizmetleri kaynağından alınan bağlantı dizesini kullanarak kimlik doğrulaması yapar. bağlantı dizeleri hakkında daha fazla bilgi için access-your-connection-strings-and-service-endpoints adresine bakın.

Kolaylık olması için, bu makalede 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ı dizesini alın. Sol tarafta sekmeye Keys gidin. Birincil anahtarın Connection string alanını kopyalayın. bağlantı dizesi endpoint=https://{your Azure İletişim Hizmetleri resource name}.communication.azure.com/;accesskey={secret key} biçimindedir.

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

COMMUNICATION_SERVICES_CONNECTION_STRING ortam değişkenini 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 yeniden başlatın.

Sisteminiz için ortam değişkeni ayarlama hakkında daha fazla bilgi için >Connection string bir ortam değişkeninde depolama adımlarını izleyin.

NotificationMessagesClient örneğini oluşturmak için, Main yöntemine 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'sini oluşturdunuz. Portalda, Azure İletişim Hizmetleri kaynağınızın Channels sekmesinde bulabilirsiniz.

Azure portalında 'Kanallar' sekmesi görüntülenirken Azure İletişim Hizmetleri'e ait bir kaynağı gösteren ekran görüntüsü. Dikkat, 'Kanal Kimliği' alanının kopyalanmasına odaklanmıştır.

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

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

Alıcı listesini ayarla

WhatsApp hesabıyla ilişkili etkin bir telefon numarası veya iş kapsamına sahip bir kullanıcı kimliği (BSUID) sağlamanız gerekir. Bu hızlı başlangıçta gönderilen şablon, metin ve medya iletilerini bu WhatsApp hesabı alır.

Bu örnekte kişisel telefon numaranızı kullanabilirsiniz.

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ı veya BSUID desteklenmektedir.

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

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

Telefon numarası kullanan örnek:

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

BSUID kullanan örnek:

// Example only
var recipientList = new List<string> { "US.13491208655302741918" };

Not

BSUID'lere ileti gönderme, Haziran 2026'dan itibaren kullanıma sunulacaktır. O zamana kadar, alıcı olarak telefon numaralarını kullanın.

BSUID'ler hakkında daha fazla bilgi için bkz. WhatsApp kullanıcı adları ve BSUID'ler.

İş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.

bir işletme etkileşimli bir konuşma başlatamaz. bir işletme yalnızca kullanıcıdan bir ileti aldıktan sonra etkileşimli ileti gönderebilir. İşletme kullanıcıya yalnızca etkin konuşma sırasında etkileşimli iletiler gönderebilir. 24 saatlik konuşma penceresinin süresi dolduktan sonra, etkileşimli konuşmayı yalnızca kullanıcı yeniden başlatabilir. Konuşmalar hakkında daha fazla bilgi için WhatsApp İş Platformu'ndaki tanıma bakın.

Kişisel WhatsApp hesabınızdan etkileşimli bir konuşma başlatmak için 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ı.

Kod örnekleri

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

Önemli

WhatsApp kullanıcısına kısa mesaj veya 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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

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:

Bu örnekte, WhatsApp kullanıcısını şu metinle yanıtlıyoruz: "Thanks for your feedback.\n From Notification Messaging SDK."

Metin iletisini derleyip 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 görüntü medya iletisi gönderme

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

Önemli

SDK sürüm 1.1.0 itibarıyla MediaNotificationContent görüntüler için artık önerilmemektedir. Görüntü göndermek için kullanmanızı ImageNotificationContent öneririz. , DocumentNotificationContentve VideoNotificationContentgibi AudioNotificationContentdiğer medya türleri için içeriğe özgü diğer sınıfları keşfedin.

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

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

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

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

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

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

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

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

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

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 örnek için şablon iletisini gönderme ile metin iletisini gönderme arasında bir bekleme ekleyin. Bu ek gecikme, kullanıcının WhatsApp hesabı üzerinden işletmeye yanıt vermek için yeterli zaman sağlar. Referans olarak, Sample code'daki tam örnek, sonraki mesajı göndermeden önce kullanıcıdan el ile giriş yapmasını 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

Ortamı ayarlama

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

Yeni bir Java uygulaması oluşturma

Bir terminal veya komut penceresi açın ve Java uygulamanızı oluşturmak istediğiniz dizine gidin. maven-archetype-quickstart şablonundan Java proje 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"

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

paketini yükleyin

pom.xml Dosyayı metin düzenleyicinizde 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>
</dependency>

Uygulama çerçevesini ayarlama

Metin düzenleyicisinde /src/main/java/com/communication/quickstart/App.java'i açın, import yönergelerini ekleyin ve System.out.println("Hello world!"); ifadesini 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.
    }
}

Kod örnekleri

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

İş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.

İstemcinin kimliğini doğrulama

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

İstemcinin 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 makalede 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ı dizesini alın. Sol tarafta yer alan Keys sekmesine gidin. Primary key için Connection string alanını kopyalayın. bağlantı dizesi endpoint=https://{your Azure İletişim Hizmetleri resource name}.communication.azure.com/;accesskey={secret key} biçimindedir.

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

COMMUNICATION_SERVICES_CONNECTION_STRING ortam değişkenini 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 >Connection string bir ortam değişkeninde depolama adımlarını 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. Portalda Azure İletişim Hizmetleri kaynağınızın Kanallar sekmesinden bakabilirsiniz.

Azure portalında 'Kanallar' sekmesi görüntülenirken Azure İletişim Hizmetleri'e ait bir kaynağı gösteren ekran görüntüsü. Dikkat, 'Kanal Kimliği' alanının kopyalanmasına odaklanmıştır.

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

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

Alıcı listesini ayarla

WhatsApp hesabıyla bağlantılı veya iş kapsamlı kullanıcı kimliği (BSUID) içeren gerçek bir telefon numarası sağlamanız gerekir. Bu WhatsApp hesabı, bu makalede gönderilen metin ve medya iletilerini alır. Bu makale için 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ı veya BSUID desteklenmektedir.

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

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

Telefon numarası kullanan örnek:

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

BSUID kullanan örnek:

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

Not

BSUID'lere ileti gönderme, Haziran 2026'dan itibaren kullanıma sunulacaktır. O zamana kadar, alıcı olarak telefon numaralarını kullanın.

BSUID'ler hakkında daha fazla bilgi için bkz. WhatsApp kullanıcı adları ve BSUID'ler.

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

Mesajlar SDK'sı, Contoso'nun WhatsApp kullanıcıları tarafından başlatılan WhatsApp iletilerini göndermesine olanak tanır. Kısa mesaj göndermek için aşağıdaki ayrıntılar gereklidir:

Bu örnekte, WhatsApp kullanıcısını şu metinle yanıtlıyoruz: "Thanks for your feedback.\n From Notification Messaging SDK."

Ö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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Metin iletisini derleyip 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 görüntü 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öndermesini sağlar. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

Önemli

SDK sürüm 1.1.0 itibarıyla MediaNotificationContent görüntüler için artık önerilmemektedir. Görüntü göndermek için kullanmanızı ImageNotificationContent öneririz. , DocumentNotificationContentve VideoNotificationContentgibi AudioNotificationContentdiğer medya türleri için içeriğe özgü diğer sınıfları keşfedin.

Önemli

Bir WhatsApp kullanıcısına görüntü 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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Görüntü iletisini derleyip 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());
}

WhatsApp kullanıcısına video 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öndermesini sağlar. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

Ö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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Video iletisini derleyip 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());
}

WhatsApp kullanıcısına sesli 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öndermesini sağlar. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

Ö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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Sesli iletiyi derleyip 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());
}

WhatsApp kullanıcısına belge 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öndermesini sağlar. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

Ö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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Belge iletisini derleyip 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 mvn komutunu kullanarak projeyi derleyin.

    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 Azure İletiler istemci kitaplığının Java için son halini bulun.

Önkoşullar

  • Azure İletişim Hizmetleri kaynağınıza kayıtlı WhatsApp Business Hesabı.
  • İletileri almak için etkin WhatsApp telefon numarası.
  • Node.js Etkin LTS ve Bakım LTS sürümleri (8.11.1 ve 10.14.1'i öneririz).
  • Node.js Etkin LTS ve Bakım LTS sürümleri (8.11.1 ve 10.14.1 önerilir)
    • Terminalde veya komut penceresinde, Node.js yüklenip yüklenmediğini denetlemek için komutunu çalıştırın node --version

Kurulum

Yeni bir Node.js uygulaması oluşturma

  1. Uygulamanız için yeni bir dizin oluşturun ve bunu bir terminalde veya komut penceresinde açın.

  2. Aşağıdaki komutu çalıştırın.

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

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

  5. dosyasına send-messages.jsaş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);
    });
    

Bu örnekteki kaynak kodunuzu oluşturduğunuz dosyaya send-messages.js eklemek için aşağıdaki bölümü tamamlayın.

paketini yükleyin

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

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

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

Kod örnekleri

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

İş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.

İstemcinin kimliğini doğrulama

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

Kolaylık olması için, bu makalede 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ı dizesini alın. Sol tarafta yer alan Keys sekmesine gidin. Primary key için Connection string alanını kopyalayın. bağlantı dizesi endpoint=https://{your Azure İletişim Hizmetleri resource name}.communication.azure.com/;accesskey={secret key} biçimindedir.

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

COMMUNICATION_SERVICES_CONNECTION_STRING ortam değişkenini 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 >Connection string bir ortam değişkeninde depolama adımlarını izleyin.

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

const NotificationClient = require("@azure-rest/communication-messages").default;

// Set Connection string
const connectionString = process.env["COMMUNICATION_SERVICES_CONNECTION_STRING"];

// Instantiate the client
const client = NotificationClient(connectionString);

Kanal kayıt kimliğini ayarlama

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

Azure portalında 'Kanallar' sekmesi görüntülenirken Azure İletişim Hizmetleri'e ait bir kaynağı gösteren ekran görüntüsü. Dikkat, 'Kanal Kimliği' alanının kopyalanmasına odaklanmıştır.

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

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

Alıcı listesini ayarla

WhatsApp hesabıyla bağlantılı veya iş kapsamlı kullanıcı kimliği (BSUID) içeren gerçek bir telefon numarası sağlamanız gerekir. Bu WhatsApp hesabı, bu makalede gönderilen şablonu, metni ve medya iletilerini alır. Bu makale için 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ı veya BSUID desteklenmektedir.

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

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

Telefon numarası kullanan örnek:

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

BSUID kullanan örnek:

// Example only
const recipientList = ["US.13491208655302741918"];

Not

BSUID'lere ileti gönderme, Haziran 2026'dan itibaren kullanıma sunulacaktır. O zamana kadar, alıcı olarak telefon numaralarını kullanın.

BSUID'ler hakkında daha fazla bilgi için bkz. WhatsApp kullanıcı adları ve BSUID'ler.

Önemli

Bir WhatsApp kullanıcısına 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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

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

İletiler SDK'sı, Contoso'nın bir WhatsApp kullanıcıları tarafından başlatıldığında WhatsApp iletileri göndermesini sağlar. Kısa mesaj göndermek için:

Bu örnekte, WhatsApp kullanıcısını şu metinle yanıtlıyoruz: "Thanks for your feedback.\n From Notification Messaging SDK."

Metin 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 görüntü 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öndermesini sağlar. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

Ö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 öneririz. , DocumentNotificationContentve VideoNotificationContentgibi AudioNotificationContentdiğer medya türleri için içeriğe özgü diğer sınıfları keşfedin.

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

WhatsApp kullanıcısına video 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öndermesini sağlar. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

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

WhatsApp kullanıcısına sesli 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öndermesini sağlar. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

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

WhatsApp kullanıcısına belge 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öndermesini sağlar. Ekli medya iletisi göndermek için şunları yapmanız gerekir:

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

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

node ./send-messages.js

Tam örnek kod

JavaScript için GitHub Messages Services istemci kitaplığı örneklerinde son haline getirilmiş kodu bulun.

Önkoşullar

  • Azure İletişim Hizmetleri kaynağınıza kayıtlı WhatsApp Business Hesabı.

  • İletileri almak için etkin WhatsApp telefon numarası.

  • İşletim sisteminiz için Python 3.7+ .

Kurulum

Yeni bir Python uygulaması oluşturma

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

mkdir messages-quickstart && cd messages-quickstart

paketini yükleyin

Python 1.1.0 veya üzeri için Azure İletişim İletileri istemci kitaplığını kullanın.

Konsol isteminden aşağıdaki komutu çalıştırın:

pip install azure-communication-messages

InteractiveMessages, Reactions ve Stickers için lütfen aşağıdaki Beta sürümünü kullanın:

pip install azure-communication-messages==1.2.0b1

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 İletiler SDK'sının bazı önemli özelliklerini işler.

Sınıf Adı Açıklama
NotificationMessagesClient Azure İletişim Hizmetleri kaynağınıza bağlanır. İletileri gönderir.
MessageTemplate Hangi şablonu kullandığınızı ve iletiniz için şablon özelliklerinin içeriğini tanımlar.
TemplateNotificationContent Göndermek istediğiniz şablon iletisinin "kim" ve "ne" olduğunu tanımlar.
TextNotificationContent Göndermek istediğiniz metin iletisinin "kim" ve "ne" ifadelerini tanımlar.
ImageNotificationContent Göndermek istediğiniz görüntü medya iletisinin "kim" ve "ne" ifadelerini tanımlar.
DocumentNotificationContent Göndermek istediğiniz Belge medya iletisinin "kim" ve "ne" ifadelerini tanımlar.
VideoNotificationContent Göndermek istediğiniz Video medya iletisinin "kim" ve "ne" ifadelerini tanımlar.
AudioNotificationContent Göndermek istediğiniz Ses medya iletisinin "kim" ve "ne" ifadelerini tanımlar.

Not

Daha fazla bilgi için Azure SDK'nin Python messages Package belgelemesine bakın.

Ortak yapılandırma

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

İstemcinin kimliğini doğrulama

Mesaj gönderimi NotificationMessagesClient kullanır. NotificationMessagesClient, Azure portalında bulunan Azure İletişim Hizmetleri kaynağından alınan bağlantı dizesi kullanılarak kimlik doğrulaması yapar.

bağlantı dizeleri hakkında daha fazla bilgi için bkz. access-your-connection-strings-and-service-endpoints.

Azure portalından Azure İletişim Kaynağı bağlantı dizesi'i ekran görüntüsünde belirtildiği gibi alın. Sol tarafta sekmeye Keys gidin. Birincil anahtarın Connection string alanını kopyalayın. bağlantı dizesi endpoint=https://{your Azure İletişim Hizmetleri resource name}.communication.azure.com/;accesskey={secret key} biçimindedir.

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

COMMUNICATION_SERVICES_CONNECTION_STRING ortam değişkenini 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 yeniden başlatın.

Sisteminiz için ortam değişkeni ayarlama hakkında daha fazla bilgi için >Connection string bir ortam değişkeninde depolama adımlarını 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'sini oluşturdunuz. Portalda, Azure İletişim Hizmetleri kaynağınızın Channels sekmesinde bulabilirsiniz.

Azure portalında 'Kanallar' sekmesi görüntülenirken Azure İletişim Hizmetleri'e ait bir kaynağı gösteren ekran görüntüsü. Dikkat, 'Kanal Kimliği' alanının kopyalanmasına odaklanmıştır.

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

    channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")

Alıcı listesini ayarla

WhatsApp hesabıyla ilişkili etkin bir telefon numarası veya iş kapsamına sahip bir kullanıcı kimliği (BSUID) sağlamanız gerekir. Bu WhatsApp hesabı, bu makalede gönderilen şablonu, metni ve medya iletilerini alır.

Bu örnekte kişisel telefon numaranızı kullanabilirsiniz.

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ı veya BSUID desteklenmektedir.

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

    phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")

Telefon numarası içeren kullanım örneği:

    # Example only
    to=[self.phone_number],

BSUID ile kullanım örneği:

    # Example only
    to=["US.13491208655302741918"],

Not

BSUID'lere ileti gönderme, Haziran 2026'dan itibaren kullanıma sunulacaktır. O zamana kadar, alıcı olarak telefon numaralarını kullanın.

BSUID'ler hakkında daha fazla bilgi için bkz. WhatsApp kullanıcı adları ve BSUID'ler.

İş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.

bir işletme etkileşimli bir konuşma başlatamaz. bir işletme yalnızca kullanıcıdan bir ileti aldıktan sonra etkileşimli ileti gönderebilir. İşletme kullanıcıya yalnızca etkin konuşma sırasında etkileşimli iletiler gönderebilir. 24 saatlik konuşma penceresinin süresi dolduktan sonra, etkileşimli konuşmayı yalnızca kullanıcı yeniden başlatabilir. Konuşmalar hakkında daha fazla bilgi için WhatsApp İş Platformu'ndaki tanıma bakın.

Kişisel WhatsApp hesabınızdan etkileşimli bir konuşma başlatmak için 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ı.

Kod örnekleri

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

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

İletiler SDK'sı, Contoso'nın bir WhatsApp kullanıcısı tarafından başlatıldığında WhatsApp iletileri göndermesini sağlar. Kısa mesaj göndermek için:

Ö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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Bu örnekte, WhatsApp kullanıcısını şu metinle yanıtlıyoruz: "Thanks for your feedback.\n From Notification Messaging SDK."

    def send_text_message(self):
        from azure.communication.messages import NotificationMessagesClient
        from azure.communication.messages.models import ( TextNotificationContent)

        # Create NotificationMessagesClient Client
        messaging_client = NotificationMessagesClient.from_connection_string(self.connection_string)
        text_options = TextNotificationContent (
            channel_registration_id=self.channelRegistrationId,
            to= [self.phone_number],
            content="Thanks for your feedback.\n From Notification Messaging SDK",
        )
        
        # calling send() with whatsapp message details
        message_responses = messaging_client.send(text_options)
        response = message_responses.receipts[0]
        
        if (response is not None):
            print("WhatsApp Text Message with message id {} was successfully sent to {}."
            .format(response.message_id, response.to))
        else:
            print("Message failed to send")

send_text_message()'i çalıştırmak için, ana yöntemi 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öndermesini sağlar. Resim eklenmiş iletiler göndermek için:

Ö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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Medya içeren bir WhatsApp mesajı gönderirken kullanılan bir örnek media_uri.

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()'i çalıştırmak için, ana yöntemi 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 Belge WhatsApp iletilerini WhatsApp kullanıcılarına göndermesini sağlar. Belgeye gömülü mesajları göndermek için:

Ö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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Medya içeren bir WhatsApp mesajı gönderirken kullanılan bir örnek media_uri.

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() komutunu çalıştırmak için main metodunu güncelleyin:

    # 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öndermesini sağlar. Sesli ekli iletiler göndermek için:

Ö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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Medya içeren bir WhatsApp mesajı gönderirken kullanılan bir örnek media_uri.

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 ana 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 video WhatsApp iletileri göndermesini sağlar. Video eklenmiş iletiler göndermek için:

Ö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 İş ve WhatsApp kullanıcısı arasında mesaj göndermeye başlama sayfasına bakın.

Medya içeren bir WhatsApp mesajı gönderirken kullanılan bir örnek media_uri.

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()'i çalıştırmak için, ana yöntemi 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

Not

Örnek koddaki tüm yer tutucu değişkenleri değerlerinizle değiştirin.

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

Diğer örnekler

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

Sonraki adımlar