次の方法で共有


JavaScript 用 Azure Communication SMS クライアント ライブラリ - バージョン 1.1.0

Azure Communication SMS サービスを使用すると、開発者は Communication Services を通じて購入できる電話番号から SMS メッセージを送信できます。

作業の開始

前提条件

  • Azure サブスクリプション
  • 既存の Communication Services リソース。 リソースを作成する必要がある場合は、Azure PortalAzure PowerShell、または Azure CLI を使用できます。
  • Communication Services リソースに割り当てられている電話番号。 Communication Services リソース に電話番号を 追加する方法については、電話番号を取得する方法に関するページを参照してください。

[インストール中]

npm install @azure/communication-sms

電話番号を取得する方法

電話番号は、 Azure Portal から Communication Services リソースに取得して割り当てることができます。 Azure Portal を使用して電話番号を取得する方法については、こちらを参照してください

パッケージを使用して電話番号を @azure/communication-phone-numbers 取得することもできます。 パッケージの使用方法については、パッケージの README を参照してください。

ブラウザーのサポート

JavaScript バンドル

ブラウザーでこのクライアント ライブラリを使用するには、まず bundler を使用する必要があります。 これを行う方法の詳細については、 バンドルに関するドキュメントを参照してください。

主要な概念

SmsClient

SmsClient は、このクライアント ライブラリを使用する開発者の主要なインターフェイスです。 SMS メッセージを送信する非同期メソッドを提供します。

認証

Azure Portal で Communication Services リソースからキーや接続文字列を取得できます。 キーを取得したら、次のいずれかの方法で認証できます。

接続文字列の使用

import { SmsClient } from "@azure/communication-sms";

const connectionString = `endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>`;
const client = new SmsClient(connectionString);

を使用して資格情報を作成する AzureKeyCredential

import { AzureKeyCredential } from "@azure/core-auth";
import { SmsClient } from "@azure/communication-sms";

const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new AzureKeyCredential("<Base64-Encoded-Key>");
const client = new SmsClient(endpoint, credential);

Azure Active Directory マネージド ID の使用

クライアント API キー認証はほとんどの例で使用されますが、Azure Id ライブラリを使用して Azure Active Directory で認証することもできます。 下に示した DefaultAzureCredential プロバイダーか、Azure SDK で提供されている他の資格情報プロバイダーを使用するには、@azure/identity パッケージをインストールしてください。

npm install @azure/identity

@azure/identity パッケージには、アプリケーションでこれを行うために使用できるさまざまな資格情報の種類が用意されています。 @azure/identity の README には、作業を開始するための詳細とサンプルが記載されています。 DefaultAzureCredential オブジェクトを作成するには、AZURE_CLIENT_SECRET、AZURE_CLIENT_ID、およびAZURE_TENANT_ID環境変数が必要です。

import { DefaultAzureCredential } from "@azure/identity";
import { SmsClient } from "@azure/communication-sms";

const endpoint = "https://<resource-name>.communication.azure.com";
let credential = new DefaultAzureCredential();
const client = new SmsClient(endpoint, credential);

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

SMS メッセージを送信するには、 から 関数を send 呼び出します SmsClient。 オブジェクトを渡す必要があります SmsSendRequest 。 また、オプション オブジェクトにパスを追加して、配信レポートを有効にするかどうかを指定し、レポートのカスタム タグを設定することもできます。 の SmsSendResult 配列が返されます。 successfulフラグは、個々のメッセージが正常に送信されたかどうかを検証するために使用されます。

const sendResults = await client.send(
  {
    from: "<from-phone-number>", // Your E.164 formatted phone number used to send SMS
    to: ["<to-phone-number-1>", "<to-phone-number-2>"], // The list of E.164 formatted phone numbers to which message is being sent
    message: "Weekly Promotion!" // The message being sent
  },
  {
    enableDeliveryReport: true,
    tag: "marketing"
  }
);

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 操作は、サーバーへの要求が失敗した場合に例外をスローします。 エラーが個々のメッセージによって発生した場合、要求全体で何かが失敗した場合にのみ、例外はスローされません。 フラグを使用して個々の successful 結果を検証し、メッセージが送信されたかどうかを確認してください。

try {
  const sendResults = await client.send({
    from: "<from-phone-number>", // Your E.164 formatted phone number used to send SMS
    to: ["<to-phone-number-1>", "<to-phone-number-2>"], // The list of E.164 formatted phone numbers to which message is being sent
    message: "Hello World via SMS!" // The message being sent
  });
  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);
    }
  }
} catch (e) {
  console.error(e.message);
}

次の手順

共同作成

このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。

インプレッション数