Biblioteca cliente de SMS de Azure Communication para .NET: versión 1.0.1

Este paquete contiene un SDK de C# para Azure Communication Services para SMS y telefonía.

Código | fuente Paquete (NuGet) | Documentación del producto

Introducción

Instalar el paquete

Instale la biblioteca cliente de SMS de Azure Communication para .NET con NuGet:

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

Requisitos previos

Necesita una suscripción de Azure y un recurso de Communication Service para usar este paquete.

Para crear un servicio de comunicación, puede usar Azure Portal, la Azure PowerShell o la biblioteca cliente de administración de .NET.

Conceptos clave

SmsClient proporciona la funcionalidad para enviar mensajes entre números de teléfono.

Uso de las instrucciones

using System;
using Azure.Communication.Sms;

Autenticar el cliente

Los clientes sms se pueden autenticar mediante la cadena de conexión adquirida desde un recurso de comunicación de Azure en Azure Portal.

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

Como alternativa, los clientes sms también se pueden autenticar mediante una credencial de token válida. Con esta opción, las variables de entorno AZURE_CLIENT_SECRETAZURE_CLIENT_ID y AZURE_TENANT_ID deben configurarse para la autenticación.

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

Ejemplos

Envío de un SMS de un remitente a un solo destinatario

Para enviar un mensaje SMS, llame a la Send función o SendAsync desde .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}");

Envío de un SMS de un remitente a varios destinatarios

Para enviar un mensaje SMS a una lista de destinatarios, llame a la Send función o SendAsync desde SmsClient con una lista de números de teléfono del destinatario. También puede agregar un objeto de opciones para especificar si el informe de entrega debe habilitarse y establecer etiquetas 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}");
}

Solución de problemas

Las operaciones de SMS producirán una excepción si se produce un error en la solicitud al servidor. Las excepciones no se producirán si el error se debe a un mensaje individual, solo si se produce un error en algo con la solicitud general. Use la Successful marca para validar cada resultado individual para comprobar si se envió el mensaje.

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

Pasos siguientes

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para obtener más información, visite cla.microsoft.com.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.