次の方法で共有


.NET 用 Azure Communication SMS クライアント ライブラリ - バージョン 1.0.1

このパッケージには、SMS とテレフォニーのAzure Communication Services用の C# SDK が含まれています。

ソースコード | パッケージ (NuGet) | 製品ドキュメント

作業の開始

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

NuGet を使用して .NET 用の Azure Communication SMS クライアント ライブラリをインストールします。

dotnet add package Azure.Communication.Sms --version 1.0.0

前提条件

このパッケージを使用するには、 Azure サブスクリプションCommunication Service リソース が必要です。

新しい Communication Service を作成するには、Azure PortalAzure PowerShell、または .NET 管理クライアント ライブラリを使用できます。

主要な概念

SmsClient は、電話番号間でメッセージを送信する機能を提供します。

ステートメントの使用

using System;
using Azure.Communication.Sms;

クライアントを認証する

SMS クライアントは、 Azure Portal の Azure Communication Resource から取得した接続文字列を使用して認証できます。

var connectionString = "<connection_string>"; // Find your Communication Services resource in the Azure portal
SmsClient client = new SmsClient(connectionString);

または、有効なトークン資格情報を使用して SMS クライアントを認証することもできます。 この認証方法を使用する場合、AZURE_CLIENT_SECRETAZURE_CLIENT_IDAZURE_TENANT_ID の各環境変数が設定されている必要があります。

string endpoint = "<endpoint_url>";
TokenCredential tokenCredential = new DefaultAzureCredential();
SmsClient client = new SmsClient(new Uri(endpoint), tokenCredential);

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

SMS メッセージを送信するには、 から または SendAsync 関数を呼び出します。SendSmsClient

SmsSendResult sendResult = await smsClient.SendAsync(
    from: "<from-phone-number>", // Your E.164 formatted from phone number used to send SMS
    to: "<to-phone-number>", // E.164 formatted recipient phone number
    message: "Hi");
Console.WriteLine($"Sms id: {sendResult.MessageId}");

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

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

var response = await smsClient.SendAsync(
    from: "<from-phone-number>", // Your E.164 formatted from phone number used to send SMS
    to: new string[] { "<to-phone-number-1>", "<to-phone-number-2>" }, // E.164 formatted recipient phone numbers
    message: "Weekly Promotion!",
    options: new SmsSendOptions(enableDeliveryReport: true) // OPTIONAL
    {
        Tag = "marketing", // custom tags
    });
foreach (SmsSendResult result in response.Value)
{
    Console.WriteLine($"Sms id: {result.MessageId}");
    Console.WriteLine($"Send Result Successful: {result.Successful}");
}

トラブルシューティング

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

try
{
    var response = await smsClient.SendAsync(
        from: "<from-phone-number>" // Your E.164 formatted phone number used to send SMS
        to: new string [] {"<to-phone-number-1>", "<to-phone-number-2>"}, // E.164 formatted recipient phone number
        message: "Weekly Promotion!",
        options: new SmsSendOptions(enableDeliveryReport: true) // OPTIONAL
        {
            Tag = "marketing", // custom tags
        });
    foreach (SmsSendResult result in response.Value)
    {
        if (result.Successful)
        {
            Console.WriteLine($"Successfully sent this message: {result.MessageId} to {result.To}.");
        }
        else
        {
            Console.WriteLine($"Something went wrong when trying to send this message {result.MessageId} to {result.To}.");
            Console.WriteLine($"Status code {result.HttpStatusCode} and error message {result.ErrorMessage}.");
        }
    }
}
catch (RequestFailedException ex)
{
    Console.WriteLine(ex.Message);
}

次の手順

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。