Le SDK Alibaba Cloud SMS pour Java simplifie l'appel des opérations d'API SMS depuis des applications Java. Le SDK prend en charge l'envoi de messages, la gestion des signatures et des modèles, la consultation des journaux d'envoi et la gestion des qualifications.
Le SDK prend en charge l'envoi de messages, la gestion des signatures et des modèles, la consultation des journaux d'envoi et la gestion des qualifications.
Installation
Configuration requise
Version de Java : Java 8 ou version ultérieure. Pour configurer un environnement de développement Java, consultez la rubrique Configurer un environnement de développement Java sous Windows.
Système d'exploitation : Windows, Linux ou macOS.
Autres dépendances : Maven 3.0 ou version ultérieure.
Installer avec 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>
Configurer l'authentification
Étape 1 : Créer un utilisateur RAM et lui accorder des permissions
Votre compte racine dispose de toutes les permissions. Utilisez un utilisateur RAM pour les appels d'API et les opérations de maintenance courantes. Pour plus d'informations, consultez la rubrique Présentation.
Créez un utilisateur RAM : Accédez à la page Create User. Spécifiez les informations requises, sélectionnez Permanent AccessKey pour Access Configuration, puis cliquez sur OK. Enregistrez votre AccessKey pour une utilisation ultérieure.
Accordez des permissions à l'utilisateur RAM : Accédez à la page Users. Recherchez l'utilisateur RAM que vous avez créé et cliquez sur Attach Policy dans la colonne Actions. Dans la zone de recherche Policy, saisissez AliyunDysmsFullAccess, sélectionnez la politique, puis cliquez sur OK.
AliyunDysmsFullAccess: Accorde toutes les permissions de gestion du service SMS.
AliyunDysmsReadOnlyAccess : Accorde des permissions en lecture seule pour accéder au service SMS.
Pour créer une politique personnalisée, consultez la rubrique Autorisation RAM.
Étape 2 : Configurer les identifiants d'accès
Stockez votre paire AccessKey dans des variables d'environnement. Consultez la rubrique Configurer les variables d'environnement sous Linux, macOS et Windows.
N'intégrez pas vos identifiants AccessKey en dur dans le code. Récupérez-les à partir des variables d'environnement.
L'exemple de code utilise les variables d'environnement
ALIBABA_CLOUD_ACCESS_KEY_IDetALIBABA_CLOUD_ACCESS_KEY_SECRET.
Bonnes pratiques de sécurité
Stockez les identifiants à l'aide de variables d'environnement ou d'un service de gestion des clés.
Faites pivoter régulièrement votre paire AccessKey.
Appliquez le principe du moindre privilège en accordant aux utilisateurs RAM uniquement les permissions minimales requises.
N'imprimez pas les informations d'identification dans les journaux.
Utilisez un rôle RAM plutôt que les identifiants de votre compte racine dans les environnements de production.
Démarrage rapide
Exemple de code
Cet exemple appelle l'API SMS pour envoyer un message. Remplacez les valeurs d'espace réservé comme indiqué dans les commentaires.
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));
}
}
Télécharger l'exemple de code
Téléchargez et exécutez directement l'exemple de code.
Accédez à SendMessageToGlobe.
Dans l'onglet Parameters, spécifiez les paramètres requis. Exemples de valeurs :
To: 88691567****
Message: This is a test message.
Dans l'onglet SDK Sample Code situé à droite, sélectionnez V2.0 pour la version du SDK et Java pour la langue (Java ou Java asynchrone). Cliquez sur Download Project pour télécharger l'exemple de code.
Extrayez le package, ouvrez le projet dans votre IDE, attendez le chargement des dépendances, puis ouvrez le fichier
src/main/java/com/aliyun/sample/Sample.java.
Exécuter le projet
Exécutez le projet. Exemple de réponse :
{
"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"
}
}
Bonnes pratiques
Optimisation des performances
Réutilisez les connexions HTTP à l'aide d'un pool de connexions pour réduire la surcharge.
Utilisez des appels asynchrones pour les scénarios à haute fréquence.
Définissez des délais d'expiration pour éviter de bloquer votre service.
Utilisez le traitement par lot intégré pour les opérations groupées.
Recommandations de sécurité
Utilisez toujours HTTPS pour communiquer avec l'API.
Ne consignez pas les données sensibles telles que les numéros de mobile ou les codes de vérification.
Validez les numéros de mobile saisis par l'utilisateur pour empêcher toute entrée malveillante.
Privilégiez les identifiants temporaires fournis par le service Alibaba Cloud Security Token Service (STS) plutôt que les identifiants à long terme.
Gestion des ressources
Fermez les connexions client inutilisées.
Dimensionnez votre pool de threads en fonction de la concurrence attendue.
Surveillez la fréquence des appels API pour éviter de dépasser les limites QPS.
Références
-
Dépôts GitHub :
-
Référence de l'API :
Consultez la référence de l'API pour chaque opération, telle que SendMessageToGlobe, pour connaître les paramètres requis et les permissions.Présentation de l'API.
-
Appeler une API :
Le SDK constitue la méthode recommandée pour appeler une API. Cette rubrique utilise Java à titre d'exemple ; les autres langages suivent le même modèle.SDK SMS.