El SDK de SMS de Alibaba Cloud para Java simplifica la llamada a las operaciones de la API de SMS desde aplicaciones Java.
Instalación
Requisitos del sistema
Versión de Java: Java 8 o posterior. Para configurar un entorno de desarrollo de Java, consulte Set up a Java development environment on Windows.
Sistema operativo: Windows, Linux o macOS.
Otras dependencias: Maven 3.0 o posterior.
Instalación con Maven
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20180501</artifactId>
<!-- Replace 'the-latest-version' with the latest version number: https://mvnrepository.com/artifact/com.aliyun/dysmsapi20180501 -->
<version>the-latest-version</version>
</dependency>
Configurar la autenticación
Paso 1: Crear un usuario de RAM y otorgarle permisos
Su cuenta raíz tiene todos los permisos. Utilice un usuario de RAM para las llamadas a la API y las tareas habituales de operación y mantenimiento. Para obtener más información, consulte Overview.
Cree un usuario de RAM: vaya a la página Create User. Especifique la información obligatoria, seleccione Permanent AccessKey en Access Configuration y, a continuación, haga clic en OK. Guarde su AccessKey para usarlo más adelante.
Otorgue permisos al usuario de RAM: vaya a la página Users. Busque el usuario de RAM que creó y haga clic en Attach Policy dentro de la columna Actions. En el cuadro de búsqueda Policy, introduzca AliyunDysmsFullAccess, seleccione la política y haga clic en OK.
AliyunDysmsFullAccess: otorga todos los permisos para gestionar el servicio de SMS.
AliyunDysmsReadOnlyAccess: otorga permisos de solo lectura para acceder al servicio de SMS.
Para crear una política personalizada, consulte RAM authorization.
Paso 2: Configure las credenciales de acceso
Guarde su AccessKey pair en variables de entorno. Configure environment variables on Linux, macOS, and Windows.
No codifique de forma fija su par de AccessKey. Obténgalo desde las variables de entorno.
El código de ejemplo utiliza las variables de entorno
ALIBABA_CLOUD_ACCESS_KEY_IDyALIBABA_CLOUD_ACCESS_KEY_SECRET.
Mejores prácticas de seguridad
Guarde las credenciales mediante variables de entorno o un servicio de gestión de claves.
Rote su par de AccessKey de manera periódica.
Aplique el principio de privilegio mínimo y otorgue solo los permisos obligatorios a los usuarios de RAM.
No imprima información de credenciales en los registros.
En entornos de producción, utilice un rol de RAM en lugar de las credenciales de su cuenta raíz.
Inicio rápido
Código de ejemplo
Este ejemplo llama a la API de SMS para enviar un mensaje. Reemplace los valores de marcador de posición tal como se indica en los comentarios.
package com.aliyun.sample;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.dysmsapi20180501.Client;
import com.aliyun.dysmsapi20180501.models.SendMessageToGlobeRequest;
import com.aliyun.dysmsapi20180501.models.SendMessageToGlobeResponse;
import static com.aliyun.teautil.Common.toJSONString;
public class Sample {
public static Client createClient() throws Exception {
Config config = new Config()
// Configure your AccessKey ID. Make sure the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured.
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// Configure your AccessKey secret. Make sure the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured.
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Configure the endpoint.
config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com";
return new Client(config);
}
public static void main(String[] args) throws Exception {
// Initialize the request client.
Client client = Sample.createClient();
// Create a request object and specify the parameter values.
SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
.setTo("<YOUR_VALUE>")
.setMessage("<YOUR_VALUE>");
// Obtain the response object.
SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);
// The response includes the body and headers from the server.
System.out.println(toJSONString(sendSmsResponse));
}
}
Descargue el código de ejemplo
Descargue y ejecute directamente el código de ejemplo.
Vaya a SendMessageToGlobe.
En la pestaña Parameters, especifique los parámetros obligatorios. Valores de ejemplo:
To: 88691567****
Message: This is a test message.
En la pestaña SDK Sample Code del lado derecho, seleccione V2.0 como versión del SDK y Java como lenguaje (Java o Java asíncrono). Haga clic en Download Project para descargar el código de ejemplo.
Extraiga el paquete, abra el proyecto en su IDE, espere a que se carguen las dependencias y abra
src/main/java/com/aliyun/sample/Sample.java.
Ejecute el proyecto
Ejecute el proyecto. Respuesta de ejemplo:
{
"headers": {
"date": "Tue, 24 Oct 2023 07:47:17 GMT",
"content-type": "application/json;charset=utf-8",
"content-length": "263",
"connection": "keep-alive",
"keep-alive": "timeout=25",
"access-control-allow-origin": "*",
"access-control-expose-headers": "*",
"x-acs-request-id": "97B1D7B6-F2F6-3A50-97BC-A90B43EC962F",
"x-acs-trace-id": "29c11fe4c778b74774d5f5602f0e7975",
"etag": "2a+mcDRTDkXqx9VF7b6U57Q3"
},
"statusCode": 200,
"body": {
"ResponseCode": "OK",
"NumberDetail": {
"Region": "Taiwan",
"Country": "Taiwan, Province of China",
"Carrier": "FarEasTone"
},
"RequestId": "97B1D7B6-F2F6-3A50-97BC-A90B43EC962F",
"Segments": "1",
"ResponseDescription": "OK",
"To": "88691567****",
"MessageId": "191921698133637273"
}
}
Mejores prácticas
Optimización del rendimiento
Reutilice las conexiones HTTP mediante un pool de conexiones para reducir la sobrecarga.
Utilice llamadas asíncronas en escenarios de alta frecuencia.
Establezca tiempos de espera para evitar que el servicio se bloquee.
Aproveche el procesamiento por lotes integrado para operaciones masivas.
Recomendaciones de seguridad
Use siempre HTTPS para comunicarse con la API.
No registre datos sensibles, como números de celular o códigos de verificación.
Valide los números de celular ingresados por los usuarios para prevenir entradas maliciosas.
Prefiera las credenciales temporales de Alibaba Cloud Security Token Service (STS) en lugar de las credenciales a largo plazo.
Gestión de recursos
Cierre las conexiones de cliente que no utilice.
Dimensione el pool de hilos según la concurrencia esperada.
Supervise la frecuencia de llamadas a la API para no superar los límites de QPS.
Referencias
-
Repositorios de GitHub:
-
Referencia de la API:
Consulte la referencia de la API de cada operación, como SendMessageToGlobe, para conocer los parámetros y permisos obligatorios.API overview.
-
Llamar a una API:
Se recomienda usar el SDK para llamar a una API. Este tema usa Java como ejemplo; otros lenguajes siguen el mismo patrón.SDK de SMS.