Biblioteca de clientes de SMS de Comunicação do Azure para .NET – versão 1.0.1

Esse pacote contém um SDK do C# para Serviços de Comunicação do Azure para SMS e Telefonia.

Código-fonte | Pacote (NuGet) | Documentação do produto

Introdução

Instalar o pacote

Instale a biblioteca de clientes de SMS de Comunicação do Azure para .NET com o NuGet:

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

Pré-requisitos

Você precisa de uma assinatura do Azure e um Recurso do Serviço de Comunicação para usar esse pacote.

Para criar um novo Serviço de Comunicação, você pode usar o Portal do Azure, o Azure PowerShell ou a biblioteca de clientes de gerenciamento do .NET.

Principais conceitos

SmsClient fornece a funcionalidade para enviar mensagens entre números de telefone.

Como usar instruções

using System;
using Azure.Communication.Sms;

Autenticar o cliente

Os clientes SMS podem ser autenticados usando a cadeia de conexão adquirida de um Recurso de Comunicação do Azure no Portal do Azure.

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

Como alternativa, os clientes SMS também podem ser autenticados usando uma credencial de token válida. Com essa opção, as variáveis de ambiente AZURE_CLIENT_SECRET, AZURE_CLIENT_ID e AZURE_TENANT_ID precisam ser configuradas para autenticação.

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

Exemplos

Enviar uma mensagem SMS 1:1

Para enviar uma mensagem SMS, chame a Send função ou SendAsync do SmsClient.

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}");

Enviar uma mensagem SMS 1:N

Para enviar uma mensagem SMS para uma lista de destinatários, chame a Send função ou SendAsync do SmsClient com uma lista de números de telefone do destinatário. Você também pode adicionar passagem em um objeto de opções para especificar se o relatório de entrega deve ser habilitado e definir marcas personalizadas.

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}");
}

Solução de problemas

As operações de SMS gerarão uma exceção se a solicitação para o servidor falhar. Exceções não serão geradas se o erro for causado por uma mensagem individual, somente se algo falhar com a solicitação geral. Use o Successful sinalizador para validar cada resultado individual para verificar se a mensagem foi enviada.

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);
}

Próximas etapas

Contribuição

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite cla.microsoft.com.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.