JavaScript 用 Azure Communication SMS クライアント ライブラリ - バージョン 1.1.0
Azure Communication SMS サービスを使用すると、開発者は Communication Services を通じて購入できる電話番号から SMS メッセージを送信できます。
作業の開始
前提条件
- Azure サブスクリプション。
- 既存の Communication Services リソース。 リソースを作成する必要がある場合は、Azure Portal、Azure 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);
}
次の手順
- このライブラリの使用方法の詳細な例については、 samples ディレクトリを参照してください。
- SMS の詳細については、「Azure Communication Services」を参照してください
- SMS メッセージの配信レポートを構成する方法の基本的なガイドについては、 SMS イベントの処理に関するクイックスタートを参照してください。
共同作成
このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。
関連プロジェクト
Azure SDK for JavaScript