Azure通信サービスでSMSメッセージを送信する


こんにちは👋 , このブログ記事では、Azure NodeJS SDKSを使用してAzureコミュニケーションサービスを使用してSMSを送信する方法を確認します.

アジュールコミュニケーションサービス


Azureコミュニケーションサービスは、あなたのアプリケーションに通信を統合するのを助けるために利用できる休息APIとクライアントライブラリSDKによるクラウドベースのサービスです.メディアツールの多くの専門知識なしであなたのアプリケーションに通信機能を追加することができます.
Azure通信サービスは様々な通信形式をサポートする
  • 声とビデオ呼び出し
  • リッチテキストチャット
  • SMS
  • シナリオ


    私は、SMSを送信するtwilioの代替としてAzure通信サービスを調査しました.私は、AOTハブテレメトリデータが警告にあるとき、ユーザーに警報を送るためにAzureコミュニケーションSMSを使用しました.要件は単純です.
  • 電話番号を取得します.
  • APIを呼び出したり、SDKを使用してSMSを送信するときにiotアラートがトリガされます.
  • SMS配信イベントを監査またはプロセスを取得します.
  • 必要条件

  • 既存のAzureアカウントを作成または使用します.電話番号を取得するには、有料アカウントを使用する必要があります.無料トライアルまたはMSDNアカウントは、SMS/電話サービスの電話番号を取得することはできません.
  • Create an Azure Communication Service
  • 電話番号を得る


    電話番号は、通信サービスリソースに割り当てられます.電話番号を取得し、Azureポータルから通信サービスリソースに割り当てることができます.Azureポータルを使用している電話番号を得る方法に関する指示here .
    あなたは電話番号の種類を選択することができます-ローカルまたは料金無料の番号と機能は、呼び出しまたはSMSでインバウンド/アウトバウンドを含みます

    Azureノードの使用SMSの番号を送信する


    を返します.JSプロジェクト、@ azure/コミュニケーションSMSパッケージをインストールします.SMSClientは、このクライアントライブラリを使用して開発者のための主要なインターフェイスです.これは、SMSメッセージを送信する非同期メソッドを提供します.
    npm install @azure/communication-sms
    
    

    認証


    Azureサービスから使用するときは、接続文字列を直接使用したり、Azure Active Directory Managed Identityを使用して通信サービスを認証できます.
    import { SmsClient } from "@azure/communication-sms";
    
    const connectionString = `endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>`;
    const client = new SmsClient(connectionString);
    
    
    import { DefaultAzureCredential } from "@azure/identity";
    import { SmsClient } from "@azure/communication-sms";
    
    const endpoint = "https://<resource-name>.communication.azure.com";
    const credential = new DefaultAzureCredential();
    const client = new SmsClient(endpoint, credential);
    
    

    SMSメッセージの送信


    SMSメッセージを送信するには、SMSClientから送信関数を呼び出します.smssendRequestオブジェクトを渡す必要があります.また、オプションレポートを渡すと、デリバリレポートが有効になっているかどうかを指定し、レポートのカスタムタグを設定できます.smssendResultの配列が返されます.成功したフラグは、個々のメッセージが正常に送信されたかどうかを検証するために使用されます.
    const sendResults = await client.send(
      {
        from: fromPhoneNumber, 
        to: ["<to-phone-number-1>", "<to-phone-number-2>"],
        message: "Site #1 - Alert - Temperature is High!"
      },
      {
        enableDeliveryReport: true,
        tag: "alert"
      }
    );
    
    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);
      }
    }
    
    

    配送レポート(またはインバウンドメッセージ)のSMSイベントの処理


    ポータルで、通信サービスリソースページの左側のメニューからイベントを選択します.あなたが特定のイベントを購読することができますイベントグリッドを追跡するSMSイベントのイベントを送信し、どこでイベントを送信します.
    ドロップダウンメニューから購読したいイベントを選択します.SMSの場合は、SMSを受信し、SMS配信レポートを受信を選択するオプションがあります.私はここでSMS配信レポートのイベントを選択しています.
    SMS Received イベントは、通信サービスの電話番号がテキストメッセージを受信するときに生成されます.イベントをトリガーするには、お使いの携帯電話から電話番号に通信サービスリソースに接続されたメッセージを送信します.SMS Delivery Report Received イベントは、ユーザーが通信サービスの電話番号を使用してSMSを送信するときに生成されます.イベントをトリガーするには、Delivery Report オプションで.
      const sendResults = await client.send(
        {
          from: fromPhoneNumber, 
          to: ["<to-phone-number-1>", "<to-phone-number-2>"],
          message: "Site #1 - Alert - Temperature is High!"
        },
        {
          enableDeliveryReport: true,
          tag: "alert"
        }
      );
    
    
    ここでrepoのソースコードを見つけることができます.
    https://github.com/ksivamuthu/azure-communication-sms

    結論


    Azureコミュニケーションサービスは、あなたのアプリケーションのためのSMS統合のために大きいです-警告メッセージ、スケジュール通知、カスタマーサービスシナリオと他の本当のコミュニケーションニーズ.また、サービスは、バルクメッセージング、双方向の会話、信頼性の高い配信、解析、およびアプリケーションにSMS機能を追加するための簡単なセットアップの経験をサポートしています.
    私はクラウド、コンテナ、IOT、devpsについてたくさん書きます.もし興味があれば、あなたがもういないなら私についてきてください.フォローしてください
    またはブログで私のブログをチェックしてください.シバムタクマールCOM .