Biblioteca cliente de Azure Communications SMS Service para Java: versión 1.1.18
Azure Communication SMS se usa para enviar mensajes de texto simples.
Código | fuentePaquete (Maven) | Documentación | de referencia de APIDocumentación del producto
Introducción
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Kit de desarrollo de Java (JDK), versión 8 o posterior.
- Apache Maven.
- Un recurso de Communication Services implementado. Puede usar Azure Portal o el Azure PowerShell para configurarlo.
Inclusión del paquete
Inclusión del archivo BOM
Incluya azure-sdk-bom en el proyecto para depender de la versión de disponibilidad general (GA) de la biblioteca. En el fragmento de código siguiente, reemplace el marcador de posición {bom_version_to_target} por el número de versión. Para más información sobre la lista de materiales, consulte el archivo Léame bom del SDK de AZURE.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
y, luego, incluya la dependencia directa en la sección de dependencias sin la etiqueta de versión.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-sms</artifactId>
</dependency>
</dependencies>
Inclusión de dependencias directas
Si desea depender de una versión determinada de la biblioteca que no está presente en la lista de materiales, agregue la dependencia directa al proyecto como se indica a continuación.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-sms</artifactId>
<version>1.1.18</version>
</dependency>
Autenticar el cliente
Autenticación de tokens de Azure Active Directory
Se debe pasar un DefaultAzureCredential
objeto a SmsClientBuilder
a través de la función credential(). El punto de conexión y httpClient también deben establecerse a través de las funciones endpoint() y httpClient(), respectivamente.
AZURE_CLIENT_SECRET
Las variables de entorno y AZURE_CLIENT_ID
AZURE_TENANT_ID
son necesarias para crear un objeto DefaultAzureCredential.
// You can find your endpoint and access key from your resource in the Azure Portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
SmsClient smsClient = new SmsClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Autenticación de clave de acceso
SMS usa la autenticación HMAC con la clave de acceso a recursos.
La clave de acceso debe proporcionarse a SmsClientBuilder
a través de la función credential(). El punto de conexión y httpClient también deben establecerse a través de las funciones endpoint() y httpClient(), respectivamente.
// You can find your endpoint and access key from your resource in the Azure Portal
String endpoint = "https://<resource-name>.communication.azure.com";
AzureKeyCredential azureKeyCredential = new AzureKeyCredential("<access-key>");
SmsClient smsClient = new SmsClientBuilder()
.endpoint(endpoint)
.credential(azureKeyCredential)
.buildClient();
Como alternativa, puede proporcionar el cadena de conexión completo mediante la función connectionString() en lugar de proporcionar el punto de conexión y la clave de acceso.
// You can find your connection string from your resource in the Azure Portal
String connectionString = "https://<resource-name>.communication.azure.com/;<access-key>";
SmsClient smsClient = new SmsClientBuilder()
.connectionString(connectionString)
.buildClient();
Conceptos clave
Hay dos formas diferentes de autenticación para usar Azure Communication SMS Service.
Ejemplos
Envío de un SMS de un remitente a un solo destinatario
Use la send
función o sendWithResponse
para enviar un mensaje SMS a un único número de teléfono.
SmsSendResult sendResult = smsClient.send(
"<from-phone-number>",
"<to-phone-number>",
"Weekly Promotion");
System.out.println("Message Id: " + sendResult.getMessageId());
System.out.println("Recipient Number: " + sendResult.getTo());
System.out.println("Send Result Successful:" + sendResult.isSuccessful());
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 sendWithResponse
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.
SmsSendOptions options = new SmsSendOptions();
options.setDeliveryReportEnabled(true);
options.setTag("Marketing");
Iterable<SmsSendResult> sendResults = smsClient.sendWithResponse(
"<from-phone-number>",
Arrays.asList("<to-phone-number1>", "<to-phone-number2>"),
"Weekly Promotion",
options /* Optional */,
Context.NONE).getValue();
for (SmsSendResult result : sendResults) {
System.out.println("Message Id: " + result.getMessageId());
System.out.println("Recipient Number: " + result.getTo());
System.out.println("Send Result Successful:" + result.isSuccessful());
}
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 isSuccessful()
marca para validar cada resultado individual para comprobar si se envió el mensaje.
try {
SmsSendOptions options = new SmsSendOptions();
options.setDeliveryReportEnabled(true);
options.setTag("Marketing");
Response<Iterable<SmsSendResult>> sendResults = smsClient.sendWithResponse(
"<from-phone-number>",
Arrays.asList("<to-phone-number1>", "<to-phone-number2>"),
"Weekly Promotion",
options /* Optional */,
Context.NONE);
Iterable<SmsSendResult> smsSendResults = sendResults.getValue();
for (SmsSendResult result : smsSendResults) {
if (result.isSuccessful()) {
System.out.println("Successfully sent this message: " + result.getMessageId() + " to " + result.getTo());
} else {
System.out.println("Something went wrong when trying to send this message " + result.getMessageId() + " to " + result.getTo());
System.out.println("Status code " + result.getHttpStatusCode() + " and error message " + result.getErrorMessage());
}
}
} catch (RuntimeException ex) {
System.out.println(ex.getMessage());
}
Pasos siguientes
- Obtenga más información sobre SMS en Azure Communication Services
- Para obtener una guía básica sobre cómo configurar informes de entrega para los mensajes SMS, consulte el inicio rápido Controlar eventos SMS.
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.
Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.
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.