Share via


クイック スタート: 高度なメッセージ機能を使用して WhatsApp メッセージを送信する

Azure Communication Services では、WhatsApp メッセージを送受信することができます。 このクイックスタートでは、アプリと Azure Communication Advanced Messages SDK の統合を開始し、WhatsApp メッセージの送受信を開始します。 このクイックスタートを完了すると、ご利用の Azure アカウントでわずかな (数セント未満の) コストが発生します。

前提条件

設定

.NET プロジェクトを作成する

プロジェクトを作成するには、「Visual Studio を使用して .NET コンソール アプリケーションを作成する」のチュートリアルに従います。

コードをコンパイルするには、Ctrl+F7 キーを押します。

パッケージをインストールする

C# プロジェクトに Azure.Communication.Messages NuGet パッケージをインストールします。

  1. [Project]>[Manage NuGet Packages...] で NuGet パッケージ マネージャーを開きます。
  2. パッケージ Azure.Communication.Messages を検索します。
  3. 最新リリースをインストールします。

アプリのフレームワークを設定する

テキスト エディターで Program.cs ファイルを開きます。

Program.cs の内容を次のコードに置き換えます。

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

高度なメッセージングの機能を使用するには、using ディレクティブを追加して、Azure.Communication.Messages 名前空間を含めます。

using Azure.Communication.Messages;

オブジェクト モデル

Azure Communication Services Advance Messaging SDK for .NET の主な機能のいくつかは、以下のクラスとインターフェイスによって処理されます。

名前 説明
NotificationMessagesClient このクラスは、Azure Communication Services リソースに接続します。 これはメッセージを送信します。
MessageTemplate このクラスは、使用するテンプレートと、メッセージのテンプレート プロパティの内容を定義します。
TemplateNotificationContent このクラスは、送信しようとしているテンプレート メッセージの "対象者" と "内容" を定義します。
TextNotificationContent このクラスは、送信しようとしているテキスト メッセージの "対象者" と "内容" を定義します。
MediaNotificationContent このクラスは、送信しようとしているメディア メッセージの "対象者" と "内容" を定義します。

コード例

次の手順に従って、Program.cs ファイルの main 関数に必要なコード スニペットを追加します。

クライアントを認証する

NotificationMessagesClient は、Azure Communication Services リソースに接続するために使用されます。

わかりやすくするために、このクイック スタートでは接続文字列を使用して認証を行います。 運用環境では、サービス プリンシパルを使用することをお勧めします。

Azure portal の Azure Communication Services リソースから接続文字列を取得します。 左側にある [Keys] タブに移動します。主キーの Connection string フィールドをコピーします。 接続文字列は、形式 endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key} になっています。

Azure portal の Azure Communication Services リソースを示すスクリーンショット。[主キー] セクションの [接続文字列] フィールドが表示されています。

環境変数 COMMUNICATION_SERVICES_CONNECTION_STRING を接続文字列の値に設定します。
コンソール ウィンドウを開き、次のコマンドを入力します。

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

環境変数を追加した後、環境変数の読み取りを必要とする実行中のプログラム (コンソール ウィンドウを含む) については、再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

お使いのシステムの環境変数を設定する方法の詳細については、「環境変数に接続文字列を格納する」の手順に従ってください。

NotificationMessagesClient をインスタンス化するには、Main メソッドに次のコードを追加します。

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

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

チャネル登録 ID の設定

チャネル登録 ID GUID は、チャネルの登録時に作成されたものです。 ポータルの Azure Communication Services リソースの [チャネル] タブで確認できます。

Azure portal の Azure Communication Services リソースを示すスクリーンショット。[チャネル] タブが表示されています。[チャネル ID] フィールドのコピー アクションに注意が必要です。

これを channelRegistrationId という変数に割り当てます。

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

受信者リストの設定

WhatsApp アカウントを紐付けた実際の電話番号を指定する必要があります。 この WhatsApp アカウントは、このクイックスタートで送信されたテンプレート、テキスト、およびメディア メッセージを受信します。 このクイックスタートでは、この電話番号は個人用の電話番号でも問題ありません。

受信者の電話番号は、WhatsApp チャネル登録に紐付けたビジネス電話番号 (送信者 ID) にすることはできません。 送信者 ID は、受信者に送信されるテキスト メッセージやメディア メッセージの送信者として表示されます。

電話番号には国番号を含める必要があります。 電話番号の形式の詳細については、電話番号の形式に関する WhatsApp ドキュメントを参照してください。

Note

現在、受信者リストでサポートされている電話番号は 1 つだけです。

次のように受信者リストを作成します。

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

例:

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

ビジネス ユーザーと WhatsApp ユーザーの間でメッセージの送信を開始する

WhatsApp ビジネス アカウントと WhatsApp ユーザーの間の会話は、次の 2 つのいずれかの方法で開始できます。

  • 企業は、WhatsApp ユーザーにテンプレート メッセージを送信します。
  • WhatsApp ユーザーは、ビジネス番号にメッセージを送信します。

会話の開始方法に関係なく、ユーザーが企業にメッセージを送信するまで、企業はテンプレート メッセージしか送信できません。ユーザーが企業にメッセージを送信してはじめて、企業はアクティブな会話中にテキストまたはメディア メッセージをユーザーに送信できます。 24 時間の会話期間が終了したら、会話を再開する必要があります。 会話の詳細については、WhatsApp Business Platform にある定義を参照してください。

(オプション 1) ビジネスから会話を開始する - テンプレート メッセージを送信する

テンプレート メッセージを送信して会話を開始します。

まず、テンプレート用の値を使用して MessageTemplate を作成します。

Note

使用可能なテンプレートを確認するには、テンプレートの一覧の手順を参照してください。 使用するテンプレートがない場合は、オプション 2 に進んでください。

ここでは、既定のテンプレート sample_template を使用して MessageTemplate を作成します。
sample_template が利用できない場合は、オプション 2 に進んでください。 上級ユーザーについては、テンプレートに関するページを参照し、オプション 1 を使用して別のテンプレートを送信する方法について理解してください。

Messages SDK を使用すると、Contoso はテンプレート化された WhatsApp メッセージを WhatsApp ユーザーに送信できます。 テンプレート メッセージを送信するには、以下の詳細情報が必要です。

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

MessageTemplate の組み立て方や独自のテンプレートの作成方法のその他の例については、次のリソースを参照してください。

テンプレートに関する WhatsApp のその他の要件については、以下の WhatsApp Business Platform API リファレンスを参照してください。

次のテンプレート メッセージを組み立てて送信します。

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

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

これで、ユーザーはこのテンプレート メッセージに返信する必要があります。 WhatsApp ユーザー アカウントから、WhatsApp ビジネス アカウントから受信したテンプレート メッセージに返信します。 このシナリオでは、メッセージの内容は関係ありません。

重要

受信者は、テキスト メッセージまたはメディア メッセージを受信者に配信する前に、テンプレート メッセージに返信して会話を開始する必要があります。

(オプション 2) ユーザーからの会話を開始する

WhatsApp ビジネス アカウントと WhatsApp ユーザーの間で会話を開始するためのその他のオプションとして、ユーザーが会話を開始することもできます。 これを行うには、個人用 WhatsApp アカウントからビジネス番号 (送信者 ID) にメッセージを送信します。

WhatsApp Business アカウント番号に送信されたユーザー メッセージを示す Web 上で表示された WhatsApp の会話。

WhatsApp ユーザーにテキスト メッセージを送信する

Messages SDK を使用すると、Contoso は WhatsApp ユーザーが開始した WhatsApp メッセージ テキストを送信できます。 テキスト メッセージを送信するには、以下の詳細情報が必要です。

重要

WhatsApp ユーザーにテキスト メッセージを送信するには、最初に WhatsApp ユーザーが WhatsApp ビジネス アカウントにメッセージを送信する必要があります。 詳細については、「ビジネス ユーザーと WhatsApp ユーザーの間のメッセージ送信開始」を参照してください。

この例では、WhatsApp ユーザーに "フィードバックをお寄せいただき、ありがとうございます。\n Notification Messaging SDK からのメッセージ" と返信しています。

次のテキスト メッセージを組み立てて送信します。

// 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 ユーザーにメディア メッセージを送信する

Messages SDK を使用すると、Contoso は WhatsApp 画像メッセージを WhatsApp ユーザーに送信できます。 画像を埋め込んだメッセージを送信するには、以下の詳細情報が必要です。

重要

WhatsApp ユーザーにテキスト メッセージを送信するには、最初に WhatsApp ユーザーが WhatsApp ビジネス アカウントにメッセージを送信する必要があります。 詳細については、「ビジネス ユーザーと WhatsApp ユーザーの間のメッセージ送信開始」を参照してください。

例として、次の URI を作成します。

var uri = new Uri("https://aka.ms/acsicon1");

次のメディア メッセージを組み立てて送信します。

// Assemble media message
var mediaContent = 
    new MediaNotificationContent(channelRegistrationId, recipientList, uri);

// Send media message
Response<SendMessageResult> sendMediaMessageResult = 
    await notificationMessagesClient.SendAsync(mediaContent);

コードの実行

プログラムをビルドして実行します。

テキストまたはメディア メッセージを WhatsApp ユーザーに送信するには、WhatsApp ビジネス アカウントと WhatsApp ユーザーの間で会話がアクティブである必要があります。
アクティブな会話がない場合は、このクイックスタートを進めるために、テンプレート メッセージの送信とテキスト メッセージの送信の間に待機時間を追加する必要があります。 この遅延を追加することで、企業に返信するのに十分な時間をユーザーの WhatsApp アカウントで確保できます。 参考のために、サンプル コードにある完全な例では、次のメッセージを送信する前にユーザーによる手動入力を求めるプロンプトが表示されます。

成功すると、ユーザーの WhatsApp アカウントに 3 件のメッセージが届きます。

  1. コードをコンパイルするには、Ctrl+F7 キーを押します。
  2. デバッグせずにプログラムを実行するには、Ctrl+F5 キーを押します。

完全なサンプル コード

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");
            MediaNotificationContent mediaContent =
                new MediaNotificationContent(channelRegistrationId, recipientList, uri);
            Response<SendMessageResult> sendMediaMessageResult =
                await notificationMessagesClient.SendAsync(mediaContent);

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

前提条件

設定

メッセージを送信するための環境を設定するには、次のセクションの手順を実行します。

新しい Java アプリケーションを作成する

ターミナルまたはコマンド ウィンドウを開き、Java アプリケーションを作成するディレクトリに移動します。 次のコマンドを実行して、maven-archetype-quickstart テンプレートから Java プロジェクトを生成します。

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

generate 目標により、artifactId 値と同じ名前のディレクトリが作成されます。 このディレクトリの下の src/main/java ディレクトリにはプロジェクトのソース コードが、src/test/java ディレクトリにはテスト ソースがそれぞれ含まれており、pom.xml ファイルはプロジェクトのプロジェクト オブジェクト モデル (POM) です。

パッケージをインストールする

テキスト エディターで pom.xml ファイルを開きます。 依存関係のグループに、次の dependency 要素を追加します。

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

アプリのフレームワークを設定する

テキスト エディターで /src/main/java/com/communication/quickstart/App.java を開き、import ディレクティブを追加して、System.out.println("Hello world!"); ステートメントを削除します。

package com.communication.quickstart;

import com.azure.communication.messages.*;
import com.azure.communication.messages.models.*;

import java.util.ArrayList;
import java.util.List;
public class App
{
    public static void main( String[] args )
    {
        // Quickstart code goes here.
    }
}

オブジェクト モデル

Azure Communication Services Advance Messaging SDK for Java の主な機能のいくつかは、以下のクラスとインターフェイスによって処理されます。

名前 説明
NotificationMessagesClientBuilder このクラスは、Notification Messages Client を作成します。 これには、エンドポイントと資格情報を指定します。
NotificationMessagesClient このクラスは、WhatsApp メッセージの送信や、メディア ファイルのダウンロードに必要です。
NotificationMessagesAsyncClient このクラスは、WhatsApp メッセージの送信や、メディア ファイルの非同期的なダウンロードに必要です。
SendMessageResult このクラスには、通知メッセージを送信するための Advance Messaging サービスからの結果が含まれています。
MessageTemplateClientBuilder このクラスは、Message Template Client を作成します。 これには、エンドポイントと資格情報を指定します。
MessageTemplateClient このクラスは、WhatsApp テンプレートの一覧を取得するために必要です。
MessageTemplateAsyncClient このクラスは、WhatsApp テンプレートの一覧を非同期的に取得するために必要です。

コード例

次の手順に従って、App.java ファイルの main 関数に必要なコード スニペットを追加します。

クライアントを認証する

メッセージ クライアントの認証には、次のようないくつかの異なるオプションを使用できます。

クライアントを認証するには、接続文字列を使用して NotificationMessagesClient または MessageTemplateClient をインスタンス化します。 クライアントは、com.azure.core.http.HttpClient インターフェイスを実装する任意のカスタム HTTP クライアントを使用して初期化することもできます。

わかりやすくするために、このクイック スタートでは接続文字列を使用して認証を行います。 運用環境では、サービス プリンシパルを使用することをお勧めします。

Azure portal の Azure Communication Services リソースから接続文字列を取得します。 左側にある [Keys] タブに移動します。Primary keyConnection string フィールドをコピーします。 接続文字列は、形式 endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key} になっています。

Azure portal の Azure Communication Services リソースを示すスクリーンショット。[主キー] セクションの [接続文字列] フィールドが表示されています。

環境変数 COMMUNICATION_SERVICES_CONNECTION_STRING を接続文字列の値に設定します。
コンソール ウィンドウを開き、次のコマンドを入力します。

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

お使いのシステムの環境変数を設定する方法の詳細については、「環境変数に接続文字列を格納する」の手順に従ってください。

NotificationMessagesClient をインスタンス化するには、main メソッドに次のコードを追加します。

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

チャネル登録 ID の設定

チャネル登録 ID GUID は、チャネルの登録時に作成されたものです。 ポータルの Azure Communication Services リソースの [チャネル] タブで確認できます。

Azure portal の Azure Communication Services リソースを示すスクリーンショット。[チャネル] タブが表示されています。[チャネル ID] フィールドのコピー アクションに注意が必要です。

これを channelRegistrationId という変数に割り当てます。

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

受信者リストの設定

WhatsApp アカウントを紐付けた実際の電話番号を指定する必要があります。 この WhatsApp アカウントは、クイックスタートで送信されたテキスト メッセージとメディア メッセージを受信します。 このクイックスタートでは、この電話番号は個人用の電話番号でも問題ありません。

受信者の電話番号は、WhatsApp チャネル登録に紐付けたビジネス電話番号 (送信者 ID) にすることはできません。 送信者 ID は、受信者に送信されるテキスト メッセージやメディア メッセージの送信者として表示されます。

電話番号には国番号を含める必要があります。 電話番号の形式の詳細については、電話番号の形式に関する WhatsApp ドキュメントを参照してください。

Note

現在、受信者リストでサポートされている電話番号は 1 つだけです。

次のように受信者リストを作成します。

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

例:

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

ビジネス ユーザーと WhatsApp ユーザーの間でメッセージの送信を開始する

WhatsApp ビジネス アカウントと WhatsApp ユーザーの間の会話は、次の 2 つのいずれかの方法で開始できます。

  • 企業は、WhatsApp ユーザーにテンプレート メッセージを送信します。
  • WhatsApp ユーザーは、ビジネス番号にメッセージを送信します。

会話の開始方法に関係なく、ユーザーが企業にメッセージを送信するまで、企業はテンプレート メッセージしか送信できません。ユーザーが企業にメッセージを送信してはじめて、企業はアクティブな会話中にテキストまたはメディア メッセージをユーザーに送信できます。 24 時間の会話期間が終了したら、会話を再開する必要があります。 会話の詳細については、WhatsApp Business Platform にある定義を参照してください。

(オプション 1) ビジネスから会話を開始する - テンプレート メッセージを送信する

テンプレート メッセージを送信して会話を開始します。

まず、テンプレート用の値を使用して MessageTemplate を作成します。

Note

使用可能なテンプレートを確認するには、テンプレートの一覧の手順を参照してください。 使用するテンプレートがない場合は、オプション 2 に進んでください。

ここでは、既定のテンプレート sample_template を使用して MessageTemplate を作成します。
sample_template が利用できない場合は、オプション 2 に進んでください。 上級ユーザーについては、テンプレートに関するページを参照し、オプション 1 を使用して別のテンプレートを送信する方法について理解してください。

Messages SDK を使用すると、Contoso はテンプレート化された WhatsApp メッセージを WhatsApp ユーザーに送信できます。 テンプレート メッセージを送信するには、以下の詳細情報が必要です。

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

これで、ユーザーはこのテンプレート メッセージに返信する必要があります。 WhatsApp ユーザー アカウントから、WhatsApp ビジネス アカウントから受信したテンプレート メッセージに返信します。 このシナリオでは、メッセージの内容は関係ありません。

重要

受信者は、テキスト メッセージまたはメディア メッセージを受信者に配信する前に、テンプレート メッセージに返信して会話を開始する必要があります。

(オプション 2) ユーザーからの会話を開始する

WhatsApp ビジネス アカウントと WhatsApp ユーザーの間で会話を開始するためのその他のオプションとして、ユーザーが会話を開始することもできます。 これを行うには、個人用 WhatsApp アカウントからビジネス番号 (送信者 ID) にメッセージを送信します。

WhatsApp Business アカウント番号に送信されたユーザー メッセージを示す Web 上で表示された WhatsApp の会話。

WhatsApp ユーザーにテキスト メッセージを送信する

Messages SDK を使用すると、Contoso は WhatsApp ユーザーが開始した WhatsApp メッセージ テキストを送信できます。 テキスト メッセージを送信するには、以下の詳細情報が必要です。

重要

WhatsApp ユーザーにテキスト メッセージを送信するには、最初に WhatsApp ユーザーが WhatsApp ビジネス アカウントにメッセージを送信する必要があります。 詳細については、「ビジネス ユーザーと WhatsApp ユーザーの間のメッセージ送信開始」を参照してください。

この例では、WhatsApp ユーザーに "フィードバックをお寄せいただき、ありがとうございます。\n Notification Messaging SDK からのメッセージ" と返信しています。

次のテキスト メッセージを組み立てて送信します。

// 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 ユーザーにメディア メッセージを送信する

Messages SDK を使用すると、Contoso は WhatsApp 画像メッセージを WhatsApp ユーザーに送信できます。 画像を埋め込んだメッセージを送信するには、以下の詳細情報が必要です。

重要

WhatsApp ユーザーにテキスト メッセージを送信するには、最初に WhatsApp ユーザーが WhatsApp ビジネス アカウントにメッセージを送信する必要があります。 詳細については、「ビジネス ユーザーと WhatsApp ユーザーの間のメッセージ送信開始」を参照してください。

例として、次の URI を作成します。

String mediaUrl = "https://aka.ms/acsicon1";

次のメディア メッセージを組み立てて送信します。

// Assemble media message
MediaNotificationContent mediaContent = new MediaNotificationContent(channelRegistrationId, recipientList, mediaUrl);

// Send media message
SendMessageResult mediaMessageResult = notificationClient.send(mediaContent);

// Process result
for (MessageReceipt messageReceipt : mediaMessageResult.getReceipts()) {
    System.out.println("Message sent to:" + messageReceipt.getTo() + " and message id:" + messageReceipt.getMessageId());
}

コードの実行

  1. pom.xml ファイルが格納されているディレクトリに移動し、mvn コマンドを使用してプロジェクトをコンパイルします。

    mvn compile
    
  2. 次の mvn コマンドを実行して、アプリを実行します。

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

完全なサンプル コード

このクイックスタートの最終的なコードは GitHub にあります。

前提条件

設定

メッセージを送信するための環境を設定するには、次のセクションの手順を実行します。

新しい Node.js アプリケーションを作成する

  1. ターミナルまたはコマンド ウィンドウを開き、自分のアプリ用に新しいディレクトリを作成し、そこに移動してから、次のコマンドを実行します。

    mkdir advance-messages-quickstart && cd advance-messages-quickstart
    
  2. 既定の設定で次のコマンドを実行して、package.json ファイルを作成します。

    npm init -y
    
  3. テキスト エディターを使用して、プロジェクトのルート ディレクトリに send-messages.js というファイルを作成します。

  4. send-messages.js ファイルに次のコード スニペットを追加します。

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

以降のセクションでは、このクイックスタートのすべてのソース コードを、作成した send-messages.js ファイルに追加します。

パッケージをインストールする

npm install コマンドを使用して、Azure Communication Services Advance Messaging SDK for JavaScript をインストールします。

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

--save オプションを使用すると、package.json ファイル内の依存関係としてライブラリが表示されます。

オブジェクト モデル

Azure Communication Services Advance Messaging SDK for JavaScript の主な機能のいくつかは、以下のクラスとインターフェイスによって処理されます。

名前 説明
MessageClient このクラスは、Azure Communication Services リソースに接続します。 これはメッセージを送信します。
MessageTemplate このクラスは、使用するテンプレートと、メッセージのテンプレート プロパティの内容を定義します。

コード例

次の手順に従って、send-messages.js ファイルの main 関数に必要なコード スニペットを追加します。

クライアントを認証する

次のコードは、dotenv パッケージを使用して、COMMUNICATION_SERVICES_CONNECTION_STRING という名前の環境変数からリソースの接続文字列を取得します。

わかりやすくするために、このクイック スタートでは接続文字列を使用して認証を行います。 運用環境では、サービス プリンシパルを使用することをお勧めします。

Azure portal の Azure Communication Services リソースから接続文字列を取得します。 左側にある [Keys] タブに移動します。Primary keyConnection string フィールドをコピーします。 接続文字列は、形式 endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key} になっています。

Azure portal の Azure Communication Services リソースを示すスクリーンショット。[主キー] セクションの [接続文字列] フィールドが表示されています。

環境変数 COMMUNICATION_SERVICES_CONNECTION_STRING を接続文字列の値に設定します。
コンソール ウィンドウを開き、次のコマンドを入力します。

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

お使いのシステムの環境変数を設定する方法の詳細については、「環境変数に接続文字列を格納する」の手順に従ってください。

MessageClient をインスタンス化するには、Main メソッドに次のコードを追加します。

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

チャネル登録 ID の設定

チャネル登録 ID GUID は、チャネルの登録時に作成されたものです。 ポータルの Azure Communication Services リソースの [チャネル] タブで確認できます。

Azure portal の Azure Communication Services リソースを示すスクリーンショット。[チャネル] タブが表示されています。[チャネル ID] フィールドのコピー アクションに注意が必要です。

これを channelRegistrationId という変数に割り当てます。

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

受信者リストの設定

WhatsApp アカウントを紐付けた実際の電話番号を指定する必要があります。 この WhatsApp アカウントは、このクイックスタートで送信されたテンプレート、テキスト、およびメディア メッセージを受信します。 このクイックスタートでは、この電話番号は個人用の電話番号でも問題ありません。

受信者の電話番号は、WhatsApp チャネル登録に紐付けたビジネス電話番号 (送信者 ID) にすることはできません。 送信者 ID は、受信者に送信されるテキスト メッセージやメディア メッセージの送信者として表示されます。

電話番号には国番号を含める必要があります。 電話番号の形式の詳細については、電話番号の形式に関する WhatsApp ドキュメントを参照してください。

Note

現在、受信者リストでサポートされている電話番号は 1 つだけです。

次のように受信者リストを作成します。

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

例:

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

ビジネス ユーザーと WhatsApp ユーザーの間でメッセージの送信を開始する

WhatsApp ビジネス アカウントと WhatsApp ユーザーの間の会話は、次の 2 つのいずれかの方法で開始できます。

  • 企業は、WhatsApp ユーザーにテンプレート メッセージを送信します。
  • WhatsApp ユーザーは、ビジネス番号にメッセージを送信します。

会話の開始方法に関係なく、ユーザーが企業にメッセージを送信するまで、企業はテンプレート メッセージしか送信できません。ユーザーが企業にメッセージを送信してはじめて、企業はアクティブな会話中にテキストまたはメディア メッセージをユーザーに送信できます。 24 時間の会話期間が終了したら、会話を再開する必要があります。 会話の詳細については、WhatsApp Business Platform にある定義を参照してください。

(オプション 1) ビジネスから会話を開始する - テンプレート メッセージを送信する

テンプレート メッセージを送信して会話を開始します。

まず、テンプレート用の値を使用して MessageTemplate を作成します。

Note

使用可能なテンプレートを確認するには、テンプレートの一覧の手順を参照してください。 使用するテンプレートがない場合は、オプション 2 に進んでください。

ここでは、既定のテンプレート sample_template を使用して MessageTemplate を作成します。
sample_template が利用できない場合は、オプション 2 に進んでください。 上級ユーザーについては、テンプレートに関するページを参照し、オプション 1 を使用して別のテンプレートを送信する方法について理解してください。

Messages SDK を使用すると、Contoso はテンプレート化された WhatsApp メッセージを WhatsApp ユーザーに送信できます。 テンプレート メッセージを送信するには、以下の詳細情報が必要です。

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

MessageTemplate の組み立て方や独自のテンプレートの作成方法のその他の例については、次のリソースを参照してください。

テンプレートに関する WhatsApp のその他の要件については、以下の WhatsApp Business Platform API リファレンスを参照してください。

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

これで、ユーザーはこのテンプレート メッセージに返信する必要があります。 WhatsApp ユーザー アカウントから、WhatsApp ビジネス アカウントから受信したテンプレート メッセージに返信します。 このシナリオでは、メッセージの内容は関係ありません。

重要

受信者は、テキスト メッセージまたはメディア メッセージを受信者に配信する前に、テンプレート メッセージに返信して会話を開始する必要があります。

(オプション 2) ユーザーからの会話を開始する

WhatsApp ビジネス アカウントと WhatsApp ユーザーの間で会話を開始するためのその他のオプションとして、ユーザーが会話を開始することもできます。 これを行うには、個人用 WhatsApp アカウントからビジネス番号 (送信者 ID) にメッセージを送信します。

WhatsApp Business アカウント番号に送信されたユーザー メッセージを示す Web 上で表示された WhatsApp の会話。

WhatsApp ユーザーにテキスト メッセージを送信する

Messages SDK を使用すると、Contoso は WhatsApp ユーザーが開始した WhatsApp メッセージ テキストを送信できます。 テキスト メッセージを送信するには、以下の詳細情報が必要です。

重要

WhatsApp ユーザーにテキスト メッセージを送信するには、最初に WhatsApp ユーザーが WhatsApp ビジネス アカウントにメッセージを送信する必要があります。 詳細については、「ビジネス ユーザーと WhatsApp ユーザーの間のメッセージ送信開始」を参照してください。

この例では、WhatsApp ユーザーに "フィードバックをお寄せいただき、ありがとうございます。\n Notification Messaging SDK からのメッセージ" と返信しています。

次のメディア メッセージを組み立てて送信します。

// 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 ユーザーにメディア メッセージを送信する

Messages SDK を使用すると、Contoso は WhatsApp 画像メッセージを WhatsApp ユーザーに送信できます。 画像を埋め込んだメッセージを送信するには、以下の詳細情報が必要です。

重要

WhatsApp ユーザーにテキスト メッセージを送信するには、最初に WhatsApp ユーザーが WhatsApp ビジネス アカウントにメッセージを送信する必要があります。 詳細については、「ビジネス ユーザーと WhatsApp ユーザーの間のメッセージ送信開始」を参照してください。

メディア メッセージを送信するには、画像の URL を指定します。 たとえば、

const url = "https://aka.ms/acsicon1";

次のメディア メッセージを組み立てて送信します。

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

コードの実行

node コマンドを使用して、send-messages.js ファイルに追加したコードを実行します。

node ./send-messages.js

完全なサンプル コード

サンプル アプリは GitHub からダウンロードできます。

前提条件

設定

新しい Python アプリケーションを作成する

ターミナルまたはコンソール ウィンドウで、アプリケーション用の新しいフォルダーを作成し、そこに移動します。

mkdir messages-quickstart && cd messages-quickstart

パッケージをインストールする

Python バージョン 1.0.0 以降の Azure Communication Messages クライアント ライブラリを使う必要があります。

コンソール プロンプトで、次のコマンドを実行します。

pip install azure-communication-messages

アプリのフレームワークを設定する

messages-quickstart.py という名前の新しいファイルを作成し、基本的なプログラム構造を追加します。

type nul > messages-quickstart.py   

基本的なプログラム構造

import os

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

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

オブジェクト モデル

Python 用 Azure Communication Services Messages SDK が備える主な機能のいくつかは、以下のクラスとインターフェイスにより処理されます。

名前 説明
NotificationMessagesClient このクラスは、Azure Communication Services リソースに接続します。 これはメッセージを送信します。
MessageTemplate このクラスは、使用するテンプレートと、メッセージのテンプレート プロパティの内容を定義します。
TemplateNotificationContent このクラスは、送信しようとしているテンプレート メッセージの "対象者" と "内容" を定義します。
TextNotificationContent このクラスは、送信しようとしているテキスト メッセージの "対象者" と "内容" を定義します。
ImageNotificationContent このクラスは、送信しようとしているイメージ メディア メッセージの "対象者" と "内容" を定義します。

コード例

次の手順に従って、Python プログラム messages-quickstart.py に必要なコード スニペットを追加します。

クライアントを認証する

メッセージの送信は NotificationMessagesClient を使用して行われます。 NotificationMessagesClient は、Azure portal で Azure Communication Services リソースから取得した接続文字列を使用して認証できます。 接続文字列の詳細については、「access-your-connection-strings-and-service-endpoints」を参照してください。

スクリーンショットに示すように、Azure portal から Azure Communication Resource 接続文字列を取得します。左側の Keys タブに移動します。主キーの Connection string フィールドをコピーします。 接続文字列は、形式 endpoint=https://{your Azure Communication Services resource name}.communication.azure.com/;accesskey={secret key} になっています。

Azure portal の Azure Communication Services リソースを示すスクリーンショット。[キー] セクションの [主キー] フィールドが表示されています。

環境変数 COMMUNICATION_SERVICES_CONNECTION_STRING を接続文字列の値に設定します。
コンソール ウィンドウを開き、次のコマンドを入力します。

setx COMMUNICATION_SERVICES_CONNECTION_STRING "<your connection string>"

環境変数を追加した後、環境変数の読み取りを必要とする実行中のプログラム (コンソール ウィンドウを含む) については、再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

お使いのシステムの環境変数を設定する方法の詳細については、「環境変数に接続文字列を格納する」の手順に従ってください。

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

チャネル登録 ID の設定

チャネル登録 ID GUID は、チャネルの登録時に作成されたものです。 ポータルの Azure Communication Services リソースの [チャネル] タブで確認できます。

Azure portal の Azure Communication Services リソースを示すスクリーンショット。[チャネル] タブが表示されています。[チャネル ID] フィールドのコピー アクションに注意が必要です。

これを channelRegistrationId という変数に割り当てます。

    channelRegistrationId = os.getenv("WHATSAPP_CHANNEL_ID_GUID")

受信者リストの設定

WhatsApp アカウントを紐付けた実際の電話番号を指定する必要があります。 この WhatsApp アカウントは、このクイックスタートで送信されたテンプレート、テキスト、およびメディア メッセージを受信します。 このクイックスタートでは、この電話番号は個人用の電話番号でも問題ありません。

受信者の電話番号は、WhatsApp チャネル登録に紐付けたビジネス電話番号 (送信者 ID) にすることはできません。 送信者 ID は、受信者に送信されるテキスト メッセージやメディア メッセージの送信者として表示されます。

電話番号には国番号を含める必要があります。 電話番号の形式の詳細については、電話番号の形式に関する WhatsApp ドキュメントを参照してください。

Note

現在、受信者リストでサポートされている電話番号は 1 つだけです。

次のように受信者リストを設定します。

    phone_number = os.getenv("RECIPIENT_WHATSAPP_PHONE_NUMBER")

使用例:

    # Example only
    to=[self.phone_number],

ビジネス ユーザーと WhatsApp ユーザーの間でメッセージの送信を開始する

WhatsApp ビジネス アカウントと WhatsApp ユーザーの間の会話は、次の 2 つのいずれかの方法で開始できます。

  • 企業は、WhatsApp ユーザーにテンプレート メッセージを送信します。
  • WhatsApp ユーザーは、ビジネス番号にメッセージを送信します。

会話の開始方法に関係なく、ユーザーが企業にメッセージを送信するまで、企業はテンプレート メッセージしか送信できません。ユーザーが企業にメッセージを送信してはじめて、企業はアクティブな会話中にテキストまたはメディア メッセージをユーザーに送信できます。 24 時間の会話期間が終了したら、会話を再開する必要があります。 会話の詳細については、WhatsApp Business Platform にある定義を参照してください。

(オプション 1) ビジネスから会話を開始する - テンプレート メッセージを送信する

テンプレート メッセージを送信して会話を開始します。

まず、テンプレート用の値を使用して MessageTemplate を作成します。

Note

使用可能なテンプレートを確認するには、テンプレートの一覧の手順を参照してください。 使用するテンプレートがない場合は、オプション 2 に進んでください。

ここでは、既定のテンプレート sample_template を使用して MessageTemplate を作成します。
sample_template が利用できない場合は、オプション 2 に進んでください。 上級ユーザーについては、テンプレートに関するページを参照し、オプション 1 を使用して別のテンプレートを送信する方法について理解してください。

Messages SDK を使用すると、Contoso はテンプレート化された WhatsApp メッセージを WhatsApp ユーザーに送信できます。 テンプレート メッセージを送信するには、以下の詳細情報が必要です。

MessageTemplate の組み立て方や独自のテンプレートの作成方法のその他の例については、次のリソースを参照してください。

テンプレートに関する WhatsApp のその他の要件については、以下の WhatsApp Business Platform API リファレンスを参照してください。

WhatsApp テンプレート メッセージを送信するには、次のコードを send_template_message(self) 関数に追加します。

        input_template: MessageTemplate = MessageTemplate(
            name="<<template_name>>",
            language="<<template_language>>")
        template_options = TemplateNotificationContent(
            channel_registration_id=self.channelRegistrationId,
            to=[self.phone_number],
            template=input_template
        )

        # calling send() with whatsapp template details
        message_responses = messaging_client.send(template_options)
        response = message_responses.receipts[0]
        
        if (response is not None):
            print("WhatsApp Templated Message with message id {} was successfully sent to {}."
            .format(response.message_id, response.to))
        else:
            print("Message failed to send")

main メソッドに send_template_message() 呼び出しを追加します。

    # Calling send_template_message()
    messages.send_template_message()

これで、ユーザーはこのテンプレート メッセージに返信する必要があります。 WhatsApp ユーザー アカウントから、WhatsApp ビジネス アカウントから受信したテンプレート メッセージに返信します。 このシナリオでは、メッセージの内容は関係ありません。

重要

受信者は、テキスト メッセージまたはメディア メッセージを受信者に配信する前に、テンプレート メッセージに返信して会話を開始する必要があります。

(オプション 2) ユーザーからの会話を開始する

WhatsApp ビジネス アカウントと WhatsApp ユーザーの間で会話を開始するためのその他のオプションとして、ユーザーが会話を開始することもできます。 これを行うには、個人用 WhatsApp アカウントからビジネス番号 (送信者 ID) にメッセージを送信します。

WhatsApp Business アカウント番号に送信されたユーザー メッセージを示す Web 上で表示された WhatsApp の会話。

WhatsApp ユーザーにテキスト メッセージを送信する

Messages SDK を使用すると、Contoso は WhatsApp ユーザーが開始した WhatsApp メッセージ テキストを送信できます。 テキスト メッセージを送信するには、以下の詳細情報が必要です。

重要

WhatsApp ユーザーにテキスト メッセージを送信するには、最初に WhatsApp ユーザーが WhatsApp ビジネス アカウントにメッセージを送信する必要があります。 詳細については、「ビジネス ユーザーと WhatsApp ユーザーの間のメッセージ送信開始」を参照してください。

この例では、WhatsApp ユーザーに "フィードバックをお寄せいただき、ありがとうございます。\n 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() を実行するように main メソッドを更新します

    #Calling send_text_message()
    messages.send_text_message()

WhatsApp ユーザーにメディア メッセージを送信する

Messages SDK を使用すると、Contoso は WhatsApp 画像メッセージを WhatsApp ユーザーに送信できます。 画像を埋め込んだメッセージを送信するには、以下の詳細情報が必要です。

重要

WhatsApp ユーザーにテキスト メッセージを送信するには、最初に WhatsApp ユーザーが WhatsApp ビジネス アカウントにメッセージを送信する必要があります。 詳細については、「ビジネス ユーザーと WhatsApp ユーザーの間のメッセージ送信開始」を参照してください。

メディア WhatsApp メッセージの送信に使用する 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_image_message() を実行するように main メソッドを更新します

    # Calling send_image_message()
    messages.send_image_message()

コードの実行

コードを実行するには、messages-quickstart.py ファイルがあるディレクトリにいることを確認します。

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

完全なサンプル コード

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

if __name__ == '__main__':
    messages = MessagesQuickstart()
    messages.send_template_message()
    messages.send_text_message()
    messages.send_image_message()

その他のサンプル

Python Messages SDK の他のサンプル コードは、GitHubで確認およびダウンロードできます。

次のステップ

このクイックスタートでは、WhatsApp SDK の高度なメッセージングを試しました。 また、次の記事も参照することをお勧めします。