次の方法で共有


SMS メッセージの送信

重要

SMS 機能は、使用する電話番号と、Azure の請求先住所によって決まる、運用している国およびリージョンによって異なります。 詳細については、「サブスクリプションの 適格性」を参照してください。


Azure CLI で Communication モジュールを使用して SMS メッセージを送信することによって、Azure Communication Services の使用を開始します。

この記事を完了すると、ご利用の Azure アカウントでわずかな (米国ドルで数セント未満の) コストが発生します。

前提条件

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで az --version を実行して、Azure CLI がインストールされていることを確認します。

設定

Communication モジュールをインストールする

通信モジュールをインストールするには、ターミナルまたはコマンド ウィンドウで次のコマンドを実行します。

az extension add --name communication

Azure CLI へのサインイン

Azure CLI にサインインする必要があります。 ターミナルから az login コマンドを実行し、資格情報を入力してサインインできます。

正しいサブスクリプションを使用していることを確認する

アカウントに複数のサブスクリプションがある場合は、このチュートリアルに適切なものを使用していることを確認してください。

ターミナルまたはコマンド ウィンドウで次のコマンドを実行して、現在のサブスクリプションを確認します。

az account show

サブスクリプションを変更する必要がある場合は、次のコマンドを実行して行うことができます。

az account set --subscription "<yourSubscriptionId>"

<yourSubscriptionId> は、実際のサブスクリプション ID に置き換える必要があります。これは、Azure portal の [サブスクリプション] セクションで確認できます。

(省略可能) 接続文字列を渡さずに Azure CLI の SMS 操作を使用する

AZURE_COMMUNICATION_CONNECTION_STRING を使用して接続文字列を渡さずに、Azure CLI の SMS 操作を使用するように --connection_string 環境変数を構成できます。 環境変数を構成するには、コンソール ウィンドウを開き、以下のタブからお使いのオペレーティン グシステムを選択します。 <yourConnectionString> は、実際の接続文字列に置き換えてください。

コンソール ウィンドウを開き、次のコマンドを入力します。

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

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

操作

1:1 の SMS メッセージを送信する

1 人の受信者に SMS メッセージを送信するには、1 人の受信者の電話番号を使用して SMS モジュールから send メソッドを呼び出します。

az communication sms send --sender "<fromPhoneNumber>" --recipient "<toPhoneNumber>" --message "Hello world via SMS for Azure CLI!" --connection-string "<yourConnectionString>"

コードを次のように置き換えます。

  • <fromPhoneNumber>を、Communication Services リソースに関連付けられている SMS 対応の電話番号に置き換えます。
  • <toPhoneNumber> をメッセージを送信する電話番号に置き換えます。
  • <yourConnectionString> を対象の接続文字列に置き換えてください。

警告

電話番号は、E.164 国際標準形式 (例: +14255550123) で指定します。 <fromPhoneNumber> の値は、短いコード (23456 など) または英数字送信者 ID (CONTOSO など) にすることもできます。

1:N の SMS メッセージを送信する

受信者一覧に SMS メッセージを送信するには、複数の受信者の電話番号を使用して SMS モジュールから send メソッドを呼び出します。

az communication sms send --sender "<fromPhoneNumber>" --recipient "<toPhoneNumber1>" "<toPhoneNumber2>" "<toPhoneNumber3>" --message "Hello world via SMS for Azure CLI!" --connection-string "<yourConnectionString>"

コードを次のように置き換えます。

  • <fromPhoneNumber>を、Communication Services リソースに関連付けられている SMS 対応の電話番号に置き換えます。
  • <toPhoneNumberN> を、メッセージを送信する N 番目の電話番号に置き換えます。
  • <yourConnectionString> を対象の接続文字列に置き換えてください。

警告

+14255550123 など、E.164 の国際標準形式で電話番号を指定します。 <fromPhoneNumber>の値には、23456 などの短いコードや、CONTOSO などの英数字の送信者 ID を指定することもできます。

Communication Services C# SMS SDK を使用して SMS メッセージを送信することによって、Azure Communication Services の使用を開始します。

この記事を完了すると、ご利用の Azure アカウントでわずかな (米国ドルで数セント未満の) コストが発生します。

完成したコードについては、Azure Samples GitHub で .NET を使用して SMS メッセージを送信するを参照してください。

前提条件

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで dotnet コマンドを実行して、.NET SDK がインストールされていることを確認します。
  • Communication Services リソースに関連付けられている電話番号を表示するには、 Azure portal にサインインし、Communication Services リソースを見つけます。 左側のナビゲーション ウィンドウで、[電話番号] を選択 します

アプリケーション環境の設定

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

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

  1. cmd、PowerShell、Bash などのコンソール ウィンドウで dotnet new コマンドを使用して、新しいコンソール アプリを SmsQuickstart という名前で作成します。 このコマンドは、単一のソース ファイル ( Program.cs) を使用して、単純な "Hello World" C# プロジェクトを作成します。

    dotnet new console -o SmsQuickstart
    
  2. 新しく作成したアプリ フォルダーにディレクトリを変更し、dotnet build コマンドを使用してアプリケーションをコンパイルします。

    cd SmsQuickstart
    dotnet build
    

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

  1. まだアプリケーション ディレクトリにいる間に、次のコマンドを使用して、.NET 用の Azure Communication Services SMS SDK パッケージをインストールします。

    dotnet add package Azure.Communication.Sms --version 1.0.0
    
  2. Program.csの先頭に using ディレクティブを追加してAzure.Communication名前空間を含めます。

    
    using System;
    using System.Collections.Generic;
    
    using Azure;
    using Azure.Communication;
    using Azure.Communication.Sms;
    
    

オブジェクト モデル

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

名前 説明
Smsクライアント このクラスは、すべての SMS 機能に必要となります。 サブスクリプション情報を使用してこれをインスタンス化し、そのインスタンスを使用して SMS を送信します。
SMS送信オプション このクラスには、配信レポートを構成するためのオプションが用意されています。 enable_delivery_report が True に設定されている場合、配信が成功したときにイベントが生成されます。
SmsSendResult (英語) このクラスには、SMS サービスからの結果が含まれます。

クライアントを認証する

テキスト エディターで Program.cs を開き、 Main メソッドの本体を、接続文字列で SmsClient を初期化するコードに置き換えます。 次のコードは、COMMUNICATION_SERVICES_CONNECTION_STRING という名前の環境変数からリソースの接続文字列を取得します。 リソースの接続文字列を管理する方法について説明します。

// This code retrieves your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");

SmsClient smsClient = new SmsClient(connectionString);

1:1 の SMS メッセージを送信する

1 人の受信者に SMS メッセージを送信するには、SmsClient からSend または SendAsync 関数を呼び出します。 Program.csの Main メソッドの末尾に次のコード 追加します。

SmsSendResult sendResult = smsClient.Send(
    from: "<from-phone-number>",
    to: "<to-phone-number>",
    message: "Hello World via SMS"
);

Console.WriteLine($"Sms id: {sendResult.MessageId}");

コードを次のように置き換えます。

  • <from-phone-number>を、Communication Services リソースに関連付けられている SMS 対応の電話番号に置き換えます。
  • <to-phone-number> をメッセージを送信する電話番号に置き換えます。

警告

+14255550123 など、E.164 の国際標準形式で電話番号を指定します。 <from-phone-number>の値には、23456 などの短いコードや、CONTOSO などの英数字の送信者 ID を指定することもできます。

オプションを使用して 1:N の SMS メッセージを送信する

受信者の一覧に SMS メッセージを送信するには、受信者の電話番号の一覧を使用して SmsClient から Send または SendAsync 関数を呼び出します。 また、オプションのパラメーターを渡して、配信レポートを有効にするかどうか、およびカスタム タグを設定するかどうかを指定することもできます。

Response<IReadOnlyList<SmsSendResult>> response = smsClient.Send(
    from: "<from-phone-number>",
    to: new string[] { "<to-phone-number-1>", "<to-phone-number-2>" },
    message: "Weekly Promotion!",
    options: new SmsSendOptions(enableDeliveryReport: true) // OPTIONAL
    {
        Tag = "marketing", // custom tags
    });

IEnumerable<SmsSendResult> results = response.Value;
foreach (SmsSendResult result in results)
{
    Console.WriteLine($"Sms id: {result.MessageId}");
    Console.WriteLine($"Send Result Successful: {result.Successful}");
}

コードを次のように置き換えます。

  • <from-phone-number>を、Communication Services リソースに関連付けられている SMS 対応の電話番号に置き換えます。
  • <to-phone-number-1><to-phone-number-2> をメッセージを送信する電話番号に置き換えます。

警告

+14255550123 など、E.164 の国際標準形式で電話番号を指定します。 <from-phone-number>の値には、23456 などの短いコードや、CONTOSO などの英数字の送信者 ID を指定することもできます。

enableDeliveryReport パラメーターは、配信レポートを構成するために使用できる省略可能なパラメーターです。 この機能は、SMS メッセージが配信されたときにイベントを生成する場合に便利です。 SMS メッセージの配信レポートを構成するには、「 SMS イベントの処理 」クイック スタートを参照してください。

Tag パラメーターを使用して、配信レポートにタグを適用できます。

コードの実行

アプリケーション ディレクトリから dotnet run コマンドを使用してアプリケーションを実行します。

dotnet run

サンプル コード

Azure Samples GitHub からサンプル アプリをダウンロードし、 .NET を使用して SMS メッセージを送信します。

Communication Services JavaScript SMS SDK を使用して SMS メッセージを送信する Azure Communication Services の使用を開始します。

この記事を完了すると、ご利用の Azure アカウントでわずかな (米国ドルで数セント未満の) コストが発生します。

完成したコードを参照してください。Azure Samples GitHub は JavaScript を使用して SMS メッセージを送信します

前提条件

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで node --version を実行して、Node.js がインストールされていることを確認します。
  • Communication Services リソースに関連付けられている電話番号を表示するには、 Azure portal にサインインし、Communication Services リソースを見つけます。 左側のナビゲーション ウィンドウで、[電話番号] を選択 します

アプリケーション環境の設定

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

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

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

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

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

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

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

JavaScript 用の Azure Communication Services SMS SDK をインストールするには、npm install コマンドを使用します。

npm install @azure/communication-sms --save

--save オプションは、package.json ファイルの依存関係としてライブラリを一覧表示します。

オブジェクト モデル

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

名前 説明
Smsクライアント このクラスは、すべての SMS 機能に必要となります。 サブスクリプション情報を使用してこれをインスタンス化し、そのインスタンスを使用して SMS を送信します。
SMS送信リクエスト このインターフェイスは、SMS 要求を作成するためのモデルです。 これを使用して、発信および着信電話番号と SMS コンテンツを構成します。
SMS送信オプション このインターフェイスには、配信レポートを構成するためのオプションが用意されています。 enableDeliveryReporttrue に設定されている場合、配信が成功したときにイベントが生成されます。
SmsSendResult (英語) このクラスには、SMS サービスからの結果が含まれます。

クライアントを認証する

クライアントを認証するには、SDK から SmsClient を インポートし、接続文字列を使用してインスタンス化します。 環境変数からリソースの接続文字列を取得できます。 たとえば、このセクションのコードは、COMMUNICATION_SERVICES_CONNECTION_STRING 環境変数から接続文字列を取得します。 リソースの接続文字列を管理する方法について説明します。

クライアントをインポートしてインスタンス化するには:

  1. send-sms.jsという名前のファイルを作成 します

  2. 次のコードを send-sms.jsに追加します。

const { SmsClient } = require('@azure/communication-sms');

// This code retrieves your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];

// Instantiate the SMS client.
const smsClient = new SmsClient(connectionString);

1:N の SMS メッセージを送信する

受信者の一覧に SMS メッセージを送信するには、受信者の電話番号の一覧を使用して SmsClient から send 関数を呼び出します。 1 人の受信者にメッセージを送信する場合は、リストに 1 つの番号のみを含めます。 次のコードをsend-sms.jsの末尾 追加します。

async function main() {
  const sendResults = await smsClient.send({
    from: "<from-phone-number>",
    to: ["<to-phone-number-1>", "<to-phone-number-2>"],
    message: "Hello World 👋🏻 via SMS"
  });

  // Individual messages can encounter errors during sending.
  // Use the "successful" property to verify the status.
  for (const sendResult of sendResults) {
    if (sendResult.successful) {
      console.log("Success: ", sendResult);
    } else {
      console.error("Something went wrong when trying to send this message: ", sendResult);
    }
  }
}

main();

コードを次のように置き換えます。

  • <from-phone-number>を、Communication Services リソースに関連付けられている SMS 対応の電話番号に置き換えます。
  • <to-phone-number-1><to-phone-number-2>を、メッセージの送信先となる電話番号に置き換えます。

警告

電話番号は、E.164 国際標準形式 (例: +14255550123) で指定します。 <from-phone-number> の値は、短いコード (23456 など) または英数字送信者 ID (CONTOSO など) にすることもできます。

オプションを使用して 1:N の SMS メッセージを送信する

また、オプションのオブジェクトを渡して、配信レポートを有効にするかどうか、およびカスタム タグを設定するかどうかを指定することもできます。


async function main() {
  const sendResults = await smsClient.send({
    from: "<from-phone-number>",
    to: ["<to-phone-number-1>", "<to-phone-number-2>"],
    message: "Weekly Promotion!"
  }, {
    // Optional parameters
    enableDeliveryReport: true,
    tag: "marketing"
  });

  // Individual messages can encounter errors during sending.
  // Use the "successful" property to verify the status.
  for (const sendResult of sendResults) {
    if (sendResult.successful) {
      console.log("Success: ", sendResult);
    } else {
      console.error("Something went wrong when trying to send this message: ", sendResult);
    }
  }
}

main();

コードを次のように置き換えます。

  • <from-phone-number>を、Communication Services リソースに関連付けられている SMS 対応の電話番号に置き換えます。
  • <to-phone-number-1><to-phone-number-2> をメッセージを送信する電話番号に置き換えます。

警告

電話番号は、E.164 国際標準形式 (例: +14255550123) で指定します。 <from-phone-number> の値は、短いコード (23456 など) または英数字送信者 ID (CONTOSO など) にすることもできます。

enableDeliveryReport パラメーターは、配信レポートを構成するために使用できる省略可能なパラメーターです。 この機能は、SMS メッセージが配信されたときにイベントを生成する場合に便利です。 SMS メッセージの配信レポートを構成するには、「 SMS イベントの処理 」クイック スタートを参照してください。 tag パラメーターは省略可能です。 これを使用して、配信レポートにタグを適用できます。

コードの実行

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


node ./send-sms.js

Communication Services Python SMS SDK を使用して SMS メッセージを送信することによって、Azure Communication Services の使用を開始します。

このクイックスタートを完了すると、ご利用の Azure アカウントでわずかな (数セント未満の) コストが発生します。

この記事の最終版コードについては、 GitHub Azure サンプルで Python を使用して電話番号を管理するを参照してください。

前提条件

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで python --version コマンドを実行して、Python がインストールされていることを確認します。
  • Communication Services リソースに関連付けられている電話番号を表示するには、 Azure portal にサインインし、Communication Services リソースを見つけます。 左側のナビゲーション ウィンドウで、[電話番号] を選択 します

アプリケーション環境の設定

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

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

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

    mkdir sms-quickstart && cd sms-quickstart
    
  2. テキスト エディターを使用して、プロジェクト のルート ディレクトリに send-sms.py という名前のファイルを作成し、基本的な例外処理を含むプログラムの構造を追加します。

    import os
    from azure.communication.sms import SmsClient
    
    try:
        # Quickstart code goes here.
    except Exception as ex:
        print('Exception:')
        print(ex)
    

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

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

まだアプリケーション ディレクトリにいる間に、次のコマンドを使用して、Python 用の Azure Communication Services SMS SDK パッケージをインストールします。

pip install azure-communication-sms

オブジェクト モデル

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

名前 説明
Smsクライアント このクラスは、すべての SMS 機能に必要となります。 サブスクリプション情報を使用してインスタンス化し、それを使用して SMS メッセージを送信します。
SmsSendResult (英語) このクラスには、SMS サービスからの結果が含まれます。

クライアントを認証する

接続文字列を使用して SmsClient を インスタンス化します。 リソースの接続文字列を管理する方法について説明します。

# Create the SmsClient object that you use to send SMS messages.
sms_client = SmsClient.from_connection_string(<connection_string>)

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

1:1 の SMS メッセージを送信する

SMS メッセージを 1 人の受信者に送信するには、1 つの受信者の電話番号を使用して send から メソッドを呼び出します。 また、オプションのパラメーターを渡して、配信レポートを有効にするかどうか、およびカスタム タグを設定するかどうかを指定することもできます。 send-sms.py の try ブロックの末尾に次のコード 追加します。


# Call send() with SMS values.
sms_responses = sms_client.send(
    from_="<from-phone-number>",
    to="<to-phone-number>",
    message="Hello World via SMS",
    enable_delivery_report=True, # optional property
    tag="custom-tag") # optional property

コードを次のように置き換えます。

  • <from-phone-number>を、通信サービスに関連付けられている SMS 対応の電話番号に置き換えます。
  • <to-phone-number> をメッセージを送信する電話番号に置き換えます。

警告

電話番号は、E.164 国際標準形式 (例: +14255550123) で指定します。 <from-phone-number> の値は、短いコード (23456 など) または英数字送信者 ID (CONTOSO など) にすることもできます。

1:N の SMS メッセージを送信する

SMS メッセージを受信者の一覧に送信するには、send から受信者の電話番号の一覧を使用して メソッドを呼び出します。 また、オプションのパラメーターを渡して、配信レポートを有効にするかどうか、およびカスタム タグを設定するかどうかを指定することもできます。 send-sms.py の try ブロックの末尾に次のコード 追加します。


# Call send() with SMS values.
sms_responses = sms_client.send(
    from_="<from-phone-number>",
    to=["<to-phone-number-1>", "<to-phone-number-2>"],
    message="Hello World via SMS",
    enable_delivery_report=True, # optional property
    tag="custom-tag") # optional property

コードを次のように置き換えます。

  • <from-phone-number>を、通信サービスに関連付けられている SMS 対応の電話番号に置き換えます。
  • <to-phone-number-1><to-phone-number-2> をメッセージを送信する電話番号に置き換えます。

警告

+14255550123 など、E.164 の国際標準形式で電話番号を指定します。 <from-phone-number>の値には、23456 などの短いコードや、CONTOSO などの英数字の送信者 ID を指定することもできます。

省略可能なパラメーター

enable_delivery_report パラメーターは、配信レポートの構成に使用できる省略可能なパラメーターです。 SMS メッセージの配信時にイベントを出力する場合は、この関数を使用します。 SMS メッセージの配信レポートを構成するには、「 SMS イベントの処理」 を参照してください。

tag パラメーターは、配信レポートにタグを適用するために使用できる省略可能なパラメーターです。

コードの実行

アプリケーション ディレクトリから python コマンドを使用してアプリケーションを実行します。

python send-sms.py

完成した Python スクリプトは次のコードのようになります。


import os
from azure.communication.sms import SmsClient

try:
    # Create the SmsClient object that you use to send SMS messages.
    sms_client = SmsClient.from_connection_string("<connection string>")
    # Call send() with SMS values.
    sms_responses = sms_client.send(
       from_="<from-phone-number>",
       to="<to-phone-number>",
       message="Hello World via SMS",
       enable_delivery_report=True, # optional property
       tag="custom-tag") # optional property

except Exception as ex:
    print('Exception:')
    print(ex)

Communication Services Java SMS SDK を使用して SMS メッセージを送信することによって、Azure Communication Services の使用を開始します。

この記事を完了すると、ご利用の Azure アカウントでわずかな (米国ドルで数セント未満の) コストが発生します。

完成したコードを参照してください。Azure Samples GitHub は Java を使用して SMS メッセージを送信します

前提条件

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで mvn -v を実行して、Maven がインストールされていることを確認します。
  • Communication Services リソースに関連付けられている電話番号を表示するには、 Azure portal にサインインし、Communication Services リソースを見つけます。 左側のナビゲーション ウィンドウで、[電話番号] を選択 します

アプリケーション環境の設定

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

新しい 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
  • PowerShellの
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 ファイルはプロジェクトの Project Object Model (POM) です。

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

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

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-sms</artifactId>
    <version>1.0.1</version>
</dependency>

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

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

package com.communication.quickstart;

import com.azure.communication.sms.models.*;
import com.azure.core.credential.AzureKeyCredential;
import com.azure.communication.sms.*;
import com.azure.core.util.Context;
import java.util.Arrays;

public class App
{
    public static void main( String[] args )
    {
        // Quickstart code goes here.
    }
}

オブジェクト モデル

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

名前 説明
Smsクライアントビルダー このクラスによって、SmsClient が作成されます。 これには、エンドポイント、資格情報、および HTTP クライアントを指定します。
Smsクライアント このクラスは、すべての SMS 機能に必要となります。 これを使用して、SMS メッセージを送信します。
SMS送信オプション このクラスには、カスタム タグを追加し、配信レポートを構成するためのオプションが用意されています。 deliveryReportEnabled が true に設定されている場合、配信が成功したときにイベントが生成されます。
SmsSendResult (英語) このクラスには、SMS サービスからの結果が含まれます。

クライアントを認証する

クライアントを認証するには、接続文字列を使用して SmsClient をインスタンス化します。 認証情報には、Azure portal の Key を使用します。 リソースの接続文字列を管理する方法について説明します。 クライアントは、com.azure.core.http.HttpClient インターフェイスを実装する任意のカスタム HTTP クライアントを使用して初期化することもできます。

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

// You can get your endpoint and access key from your resource in the Azure portal.
String endpoint = "https://<resource-name>.communication.azure.com/";
AzureKeyCredential azureKeyCredential = new AzureKeyCredential("<access-key-credential>");

SmsClient smsClient = new SmsClientBuilder()
                .endpoint(endpoint)
                .credential(azureKeyCredential)
                .buildClient();

エンドポイントとアクセス キーを指定する代わりに、connectionString 関数を使用して接続文字列全体を指定することもできます。

// You can get your connection string from your resource in the Azure portal.
String connectionString = "endpoint=https://<resource-name>.communication.azure.com/;accesskey=<access-key>";

SmsClient smsClient = new SmsClientBuilder()
            .connectionString(connectionString)
            .buildClient();

1:1 の SMS メッセージを送信する

1 人の受信者に SMS メッセージを送信するには、1 人の受信者の電話番号を使用して SmsClient から send メソッドを呼び出します。 また、オプションのパラメーターを渡して、配信レポートを有効にするかどうか、およびカスタム タグを設定するかどうかを指定することもできます。

SmsSendResult sendResult = smsClient.send(
                "<from-phone-number>",
                "<to-phone-number>",
                "Weekly Promotion");

System.out.println("Message Id: " + sendResult.getMessageId());
System.out.println("Recipient Number: " + sendResult.getTo());
System.out.println("Send Result Successful:" + sendResult.isSuccessful());

コードを次のように置き換えます。

  • <from-phone-number>を、Communication Services リソースに関連付けられている SMS 対応の電話番号に置き換えます。
  • <to-phone-number> をメッセージを送信する電話番号に置き換えます。

警告

+14255550123 など、E.164 の国際標準形式で電話番号を指定します。 <from-phone-number>の値には、23456 などの短いコードや、CONTOSO などの英数字の送信者 ID を指定することもできます。

オプションを使用して 1:N の SMS メッセージを送信する

受信者の一覧に SMS メッセージを送信するには、受信者の電話番号の一覧を使用して send メソッドを呼び出します。 また、オプションのパラメーターを渡して、配信レポートを有効にするかどうか、およびカスタム タグを設定するかどうかを指定することもできます。

SmsSendOptions options = new SmsSendOptions();
options.setDeliveryReportEnabled(true);
options.setTag("Marketing");

Iterable<SmsSendResult> sendResults = smsClient.sendWithResponse(
    "<from-phone-number>",
    Arrays.asList("<to-phone-number1>", "<to-phone-number2>"),
    "Weekly Promotion",
    options /* Optional */,
    Context.NONE).getValue();

for (SmsSendResult result : sendResults) {
    System.out.println("Message Id: " + result.getMessageId());
    System.out.println("Recipient Number: " + result.getTo());
    System.out.println("Send Result Successful:" + result.isSuccessful());
}

コードを次のように置き換えます。

  • <from-phone-number>を Communication Services リソースに関連付けられている SMS 対応の電話番号に置き換える
  • <to-phone-number-1><to-phone-number-2> をメッセージを送信する電話番号に置き換えます。

警告

電話番号は、E.164 国際標準形式 (例: +14255550123) で指定します。 <from-phone-number> の値は、短いコード (23456 など) または英数字送信者 ID (CONTOSO など) にすることもできます。

setDeliveryReportEnabled メソッドは、配信レポートを構成する際に使用します。 この機能は、SMS メッセージが配信されたときにイベントを生成する場合に便利です。 SMS メッセージの配信レポートを構成するには、「 SMS イベントの処理 」クイック スタートを参照してください。

配信レポートにタグを適用するには、 setTag メソッドを使用します。

コードの実行

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

    
    mvn compile
    
    
  2. パッケージをビルドします。

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

    • コマンド プロンプト
    
    mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
    
    
    • PowerShellの
    mvn exec:java "-Dexec.mainClass=com.communication.quickstart.App" "-Dexec.cleanupDaemonThreads=false"
    

Azure Communication Services SMS コネクタと Azure Logic Apps を使用して、SMS メッセージを送信できる自動化されたワークフローを作成します。

この記事では、ロジック アプリ ワークフローの最初の手順であるトリガー イベントに応答してテキスト メッセージを自動的に送信する方法について説明します。 トリガー イベントには、受信メール メッセージ、繰り返しスケジュール、 Azure Event Grid リソース イベント、または Azure Logic Apps でサポートされているその他のトリガーを指定できます。

ロジック アプリ デザイナーに対して開いている Azure portal を示すスクリーンショット。Azure portal には、Azure Communication Services コネクタの SMS 送信アクションを使用するロジック アプリの例が示されています。

この記事では、コネクタを使用してトリガーに応答することに重点を置いていますが、コネクタを使用して、ワークフローのトリガーに従う手順である他のアクションに応答することもできます。 Logic Apps を初めて使用する場合は、始める前に 「Azure Logic Apps とは」 を参照してください。

この記事を完了すると、ご利用の Azure アカウントでわずかな (米国ドルで数セント未満の) コストが発生します。

前提条件

重要

SMS と PSTN 機能は、使用する電話番号と、Azure の請求先住所によって決まる、運用している国およびリージョンによって異なります。 詳細については、 サブスクリプションの資格 に関するドキュメントを参照してください。

SMS アクションを追加する

Azure Communication Services SMS コネクタを使用してワークフローに新しい手順として SMS の送信 アクションを追加するには、ロジック アプリ デザイナーでロジック アプリ ワークフローを開いた 状態で、Azure portal で次の手順に従います。

  1. デザイナーで、新しいアクションを追加するステップの下にある [ 新しいステップ] を選択します。 または、ステップ間に新しいアクションを追加するには、それらのステップ間の矢印の上にポインターを移動し、プラス記号 (+) を選択して、[ アクションの追加] を選択します。

  2. [ 操作の選択 ] 検索ボックスに「 Azure Communication Services」と入力します。 アクションの一覧から [ SMS の送信] を選択します。

    [SMS の送信] アクションが選択されているロジック アプリ デザイナーと Azure Communication Services コネクタを示すスクリーンショット。

  3. Communication Services リソースとの接続を作成します。

    1. 同じサブスクリプション内で次のように実行します。

      1. 接続の名前を入力します。

      2. Azure Communication Services リソースを選択します。

      3. 作成を選択します。

      サンプル情報を含む [SMS の送信] アクションの構成を示すスクリーンショット。

    2. お使いの Azure Communication Services リソースの接続文字列を使用します。

      1. 接続の名前を入力します。

      2. ドロップダウン オプションから [ConnectionString 認証] を選択します。

      3. Azure Communication Services リソースの接続文字列を入力します。

      4. 作成を選択します。

      接続文字列認証の構成を示すスクリーンショット。

    3. サービス プリンシパルの使用 (サービス プリンシパルの作成を参照):

      1. 接続の名前を入力します。

      2. ドロップダウン オプションから [サービス プリンシパル (Microsoft Entra アプリケーション) 認証] を選択します。

      3. サービス プリンシパルの [テナント ID]、[クライアント ID]、[クライアント シークレット] を入力します。

      4. Azure Communication Services リソースの Azure Communication Services エンドポイント URL の値を入力します。

      5. 作成を選択します。

      サービス プリンシパル認証の構成を示すスクリーンショット。

  4. [ SMS の送信 ] アクションで、次の情報を指定します。

    • 送信元と送信先の電話番号。 テスト用途では、送信先電話番号としてご自身の電話番号を使用してください。

    • 送信するメッセージの内容。たとえば「Hello from Logic Apps!」と入力します。

    例の情報を含む SMS 送信 アクションを次に示します。

    サンプル情報を含む [SMS の送信] アクションを示すスクリーンショット。

  5. 完了したら、デザイナーツール バーの [保存] を選択 します

次に、テストのためにワークフローを実行します。

ワークフローのテスト

ワークフローを手動で開始するには、デザイナーのツール バーで [ 実行] を選択します。 または、トリガーが起動するまで待つこともできます。 どちらの場合も、ワークフローによって、指定した送信先電話番号に携帯ショートメール (SMS) メッセージが送信されます。 詳細については、 ワークフローの実行方法を確認してください

ワークフロー リソースをクリーンアップする

ロジック アプリのワークフローと関連リソースをクリーンアップするには、 Logic Apps リソースをクリーンアップする方法を確認します。

トラブルシューティング

SMS 配信に関連する問題をトラブルシューティングするには、 Event Grid で配信レポートを有効 にして配信の詳細をキャプチャできます。

リソースをクリーンアップする

Communication Services サブスクリプションをクリーンアップして解除する場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。 リソースのクリーンアップについて詳しくは、こちらをご覧ください。

フリーダイヤル検証

SMS メッセージの送信に新しい無料電話番号を使用するには、無料電話番号の検証プロセスを完了する必要があります。 フリーダイヤル番号の確認を完了する方法のガイダンスについては、無料の確認を 送信するためのクイック スタートを参照してください。 完全に検証されたフリーダイヤル番号のみが、SMS トラフィックの送信を承認されます。 未検証の無料電話番号からの、米国とカナダの電話番号に宛てたすべての SMS トラフィックはブロックされます。

次のステップ

この記事では、Azure Communication Services を使用して SMS メッセージを送信する方法について説明しました。