Todos los productos
Search
Centro de documentos

Short Message Service:SDK para Java

Última actualización: Sep 07, 2026

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

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

Importante

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.

Nota
  • 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.

Nota
  • 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_ID y ALIBABA_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.

  1. Vaya a SendMessageToGlobe.

  2. En la pestaña Parameters, especifique los parámetros obligatorios. Valores de ejemplo:

  • To: 88691567****

  • Message: This is a test message.

  1. 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.

  2. 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