Trop de canaux de communication avec les clients, trop peu de temps ? Simplifiez la communication et commencez à envoyer les SMS de vos clients avec ClickSend via une application web ou une API pratique.

Envoyez des alertes, des rappels, des campagnes marketing, des enquêtes et des mises à jour de compte à vos clients – sans sacrifier l’expérience et l’engagement client. Vous pourriez aussi attirer quelques clients en cours de route.

Dans cet article, vous apprendrez comment :

  • Configurez votre application Java Spring Boot
  • Installer et configurer l’ApiClient
  • Ajouter des listes de contacts SMS à votre compte ClickSend
  • Envoyez des messages texte en Java avec le point de terminaison Send SMS
  • Envoyez des messages en masse en Java à l’aide du point de terminaison de l’API de campagne SMS

Passez à l’étape suivante : Utilisez la bibliothèque Java officielle de ClickSend API.


Tutoriel : envoyer des SMS avec Java en utilisant Spring Boot

💡Qu’est-ce que Spring Boot ? Java Spring Boot est un outil qui accélère et simplifie le développement d’applications web et de microservices avec Java Spring Framework.

Pour envoyer des SMS en Java, vous devez d’abord :

  • Mettre en place une application Java Spring Boot
  • Installez et configurez ClickSend SMS
  • Créez une liste de contacts dans le tableau de bord

Envoyez ensuite des SMS en Java en utilisant soit le point de terminaison “Envoyer un SMS”, soit le point de terminaison “Campagnes SMS”.

Quelle est la différence ?

Le point de terminaison d’envoi de SMS vous permet d’envoyer jusqu’à 1 000 messages par appel API, à une combinaison de contacts individuels et/ou de listes de contacts. Il renvoie également un message de réponse détaillé.

En utilisant le point de terminaison Campagnes SMS, vous pouvez envoyer des SMS à un maximum de 20 000 contacts d’une même liste de contacts à chaque appel API, et le message de réponse est moins détaillé.

Envoyer des SMS en Java – quelques conditions préalables

Pour suivre ce tutoriel, vous devez disposer des éléments suivants :

  • Un compte ClickSend, que vous pouvez créer gratuitement.
  • Configuration d’un environnement de développement Java local.
  • Postman, que vous utiliserez pour tester les fonctionnalités.

Configurez votre application Java Spring Boot

Pour mettre en place une application Spring Boot, vous pouvez utiliser le Spring Initializr ici, qui a des métadonnées de projet de démonstration Spring Boot, une dépendance Spring Web, et utilise l’outil de construction Maven. Cliquez sur “Generate”, puis importez le projet dans un IDE.

Après avoir importé le projet dans votre IDE, ouvrez ‘pom.xml’ pour ajouter la dépendance Maven de la bibliothèque Java ClickSend Java API.

Mettez à jour le fichier ‘pom.xml’ avec la dépendance ci-dessous :

<dependency>
    <groupId>com.github.clicksend</groupId>
    <artifactId>clicksend-java-client</artifactId>
    <version>1.0.0</version>
    <scope>compile</scope>
</dependency>

Ensuite, vous allez configurer l’ApiClient ClickSend, qui est le client natif Java pour ClickSend, afin de permettre l’utilisation de ClickSend dans votre application.

Installer et configurer l’ApiClient

Pour configurer l’ApiClient ClickSend, vous aurez besoin des identifiants API ClickSend. Pour obtenir les identifiants API, connectez-vous à votre tableau de bord ClickSend et cliquez sur le symbole de la clé dans le coin supérieur droit.

Où trouver les informations d'identification de l'API ClickSend ?

Après avoir cliqué sur le symbole de la clé, vous verrez apparaître une fenêtre contextuelle avec le nom d’utilisateur de votre compte et la clé API.

Exemple de fenêtre contextuelle avec le nom d'utilisateur et la clé API

Pour stocker en toute sécurité les informations d’identification de l’API, créez deux variables d’environnement dans le fichier ” application.properties ” de l’application Spring Boot :

clickSend-username=<Your_ClickSend_Username>
clickSend-apiKey=<Your_ClickSend_ApiKey>

Pour utiliser ces variables d’environnement afin de configurer ClickSend, dans “BroadcastSmsApiWithClicksendApplication.java”, la classe principale de l’application, créez deux variables “private” qui injecteront les valeurs des variables d’environnement avec l’annotation “@Value” :

@Value("${clickSend-username}")
private String clickSendUsername;
@Value("${clickSend-apiKey}")
private String clickSendApiKey;

Pour configurer ClickSend, créez une méthode de bean avec l’annotation ‘@bean’, puis rendez le bean à portée unique en ajoutant l’annotation ‘@Scope’. @Scope Crée une instance unique de la configuration du bean et la met en cache, de sorte que toutes les requêtes pour le bean renvoient le même objet.

@Bean
@Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON)
public ApiClient clickSendConfig() {
    ApiClient clickSendApiClient = new ApiClient();
    clickSendApiClient.setUsername(clickSendUsername);
    clickSendApiClient.setPassword(clickSendApiKey);
    return clickSendApiClient;
}

La méthode ci-dessus configure les informations d’identification de l’API et renvoie l’instanciation du client API ClickSend.

Maintenant, vous pouvez utiliser le client API ClickSend n’importe où dans l’application Spring Boot, et vous êtes prêt à envoyer des messages texte avec Java.

Ajouter des contacts SMS à votre compte ClickSend

Vous pouvez ajouter des contacts à ClickSend de deux manières : via le tableau de bord ClickSend ou de manière programmatique via les points de terminaison Contact et Liste de contacts.

Ajouter des contacts dans le tableau de bord

Pour ajouter des numéros via le tableau de bord ClickSend, cliquez sur Contacts dans la barre latérale gauche, comme indiqué dans l’image ci-dessous.

Capture d'écran des contacts

Vous accédez à l’écran des contacts, illustré dans l’image précédente. Cliquez sur le signe plus à côté de “Listes”, créez un nom pour votre liste de contacts, puis cliquez sur Ajouter pour créer la liste de contacts.

Création d'une liste de contacts

Vous accédez alors à la page des contacts. Pour commencer à ajouter des contacts, cliquez sur l’image de la personne avec l’étiquette “Cliquez ici pour commencer à ajouter vos contacts”.

Capture d'écran de l'ajout de contacts

Après avoir cliqué pour commencer à ajouter des contacts, ClickSend vous propose des options pour ajouter, importer ou synchroniser vos contacts, comme le montre le GIF ci-dessous.

Options d'ajout de contacts

Pour ajouter des contacts, vous devez remplir manuellement les champs correspondants ; l’option d’importation vous permet d’importer un fichier Excel ou CSV. L’option de synchronisation permet de synchroniser des outils tels que Google Contacts, Salesforce ou Zoho.

Pour ce tutoriel, vous allez importer à partir d’un fichier CSV. Voici un exemple de fichier CSV que vous pouvez utiliser. Après avoir téléchargé l’exemple de fichier CSV, téléchargez-le et cliquez sur IMPORT.

Capture d'écran de l'importation de contacts

Veuillez noter qu’en raison du caractère démonstratif de ce fichier, l’exemple de fichier CSV ne contient que deux contacts.

Après avoir importé le fichier CSV, ClickSend vous demande de sélectionner les colonnes que vous souhaitez ajouter à votre liste de contacts. Pour ce tutoriel, vous n’aurez qu’à sélectionner téléphone, prénom et nom.

Terminer l'importation

Faites défiler vers le bas et cliquez sur CONFIRMER pour terminer l’importation.

Importation terminée

Notez les chiffres à la fin de l’URL, mis en évidence dans l’image ci-dessus. Ces chiffres correspondent au “list_id” que vous utiliserez pour indiquer à l’application Java la liste particulière à laquelle envoyer les messages. Si vous créez une liste de contacts par programme, vous obtiendrez une réponse avec le “list_id”.

Une fois vos contacts importés, vous pouvez utiliser le point final d’envoi de SMS de ClickSend pour mettre en œuvre un point final capable d’envoyer des messages à un millier de numéros à la fois.

Envoyez des messages texte en Java avec le point de terminaison Send SMS

Le point de terminaison Envoi de SMS vous permet de contacter jusqu’à 1 000 numéros à la fois. Après avoir envoyé le message, vous obtiendrez une réponse détaillée contenant des informations sur la livraison du message, ainsi que des informations sur l’utilisateur et les codes d’état ou d’erreur résultant de la livraison.

Pour commencer, dans l’application Spring Boot, créez deux paquets :

  • ‘model’ : Ce paquet contient le modèle des détails du message pour le corps de la requête POST.
  • ‘api’ : Ce paquet contiendra les points d’accès REST qui mettront en œuvre l’envoi de messages.

Dans le paquetage “model”, créez une classe “MessageDetails” pour modéliser le SMS :

package com.example.broadcastSMSapiwithclicksend.model;

/**
 * `messageBody` stores the SMS message,
 * `listId` stores the contact `list_id`,
 * `sendingSource` indicates the method of sending the message, and
 * `smsCampaignName` is used when sending a large volume of messages.
 */
public class MessageDetails {
    private String messageBody;
    private int listId;
    private String sendingSource;
    private String smsCampaignName;

    public MessageDetails() {
    }

    public String getMessageBody() {
        return messageBody;
    }

    public void setMessageBody(String messageBody) {
        this.messageBody = messageBody;
    }

    public int getListId() {
        return listId;
    }

    public void setListId(int listId) {
        this.listId = listId;
    }

    public String getSendingSource() {
        return sendingSource;
    }

    public void setSendingSource(String sendingSource) {
        this.sendingSource = sendingSource;
    }

    public String getSmsCampaignName() {
        return smsCampaignName;
    }

    public void setSmsCampaignName(String smsCampaignName) {
        this.smsCampaignName = smsCampaignName;
    }
}

Dans le paquet “api”, créez une nouvelle classe “BroadcastSMSRestController” et dans le fichier “BroadcastSMSRestController.java”, créez une variable “ApiClient” qui instancie votre configuration ClickSend à partir de la méthode @bean que vous avez créée précédemment.

@RestController
public class BroadcastSMSRestController {
    @Autowired
    private ApiClient clickSendConfig;
}

Dans l’extrait de code ci-dessus :

  • La classe annote ‘@RestController’ pour indiquer à Spring que la classe est destinée à construire une API REST.
  • La variable “ApiClient” comporte une annotation “@Autowired” qui permet à Spring de résoudre et d’injecter la méthode “@bean” dans le haricot Spring.

Pour commencer à envoyer des messages via le point de terminaison Send SMS, ajoutez la méthode suivante à la classe BroadcastSMSRestController :

@PostMapping("/api/sms1000")
public ResponseEntity<String> sendSMStoUpto1000Numbers(@RequestBody MessageDetails messageDetails) {
    SmsApi smsApi = new SmsApi(clickSendConfig);
    
    SmsMessage smsMessage = new SmsMessage();
    smsMessage.body(messageDetails.getMessageBody());
    smsMessage.listId(messageDetails.getListId());
    smsMessage.source(messageDetails.getSendingSource());

    List<SmsMessage> smsMessageList = List.of(smsMessage);

    // SmsMessageCollection | SmsMessageCollection model
    SmsMessageCollection smsMessages = new SmsMessageCollection();
    smsMessages.messages(smsMessageList);

    try {
        String result = smsApi.smsSendPost(smsMessages);
        return new ResponseEntity<>(result, HttpStatus.OK);
    } catch (ApiException e) {
        e.printStackTrace();
    }

    return new ResponseEntity<>("Exception when calling SmsApi#smsSendPost", HttpStatus.BAD_REQUEST);
}

Le code ci-dessus :

  • possède un point de terminaison POST ‘/api/sms1000’, auquel vous enverrez des requêtes.
  • Prend un corps de demande JSON de ‘MessageDetails’.
  • Crée une instance de ClickSend ‘SmsApi’ avec ‘clickSendConfig’.
  • L’instance “SmsMessage” crée le message avec les données du corps de la requête JSON “MessageDetails”.
  • Il ajoute ensuite chaque message pour chaque numéro de la liste de contacts à une collection.
  • Dans le bloc “try-catch”, il envoie le message avec l’instance de “SmsApi” et renvoie la réponse, en attrapant également toute erreur qui pourrait survenir.

Test du point final d’envoi de SMS

Pour tester le point d’accès, ouvrez Postman et faites une demande POST au point d’accès “http://localhost:8080/api/sms1000” avec ce corps JSON :

{
    "messageBody": "Hey (First Name) This is a test message",
    "listId": "<your_list_id>",
    "sendingSource": "Java Application"
}

Le corps de la requête JSON ci-dessus contient un caractère générique “First Name”, qui comprendra le prénom du contact que vous avez importé. Voyez la capture d’écran de test ci-dessous.

Test du point de terminaison Send SMS

Notre API SMS Java offre davantage de fonctionnalités, et le “SmsMessage” peut prendre en charge davantage de propriétés, telles que “schedule”, qui vous permet de programmer un message pour une heure spécifique. Pour en savoir plus, consultez notre documentation sur l’envoi de SMS en Java.

Envoyez des messages en masse en Java à l’aide du point de terminaison de l’API de campagne SMS

Le point final ClickSend Send SMS vous permet d’envoyer des messages à un millier de contacts à la fois.

Pour envoyer des messages à un plus grand nombre de contacts, vous devrez utiliser le point de terminaison de campagne SMS ClickSend fourni dans la bibliothèque SMS de l’API Java. Le point final de campagne SMS vous permet d’envoyer des messages à un maximum de 20 000 numéros à la fois. Notez que la réponse du point final de campagne SMS est moins détaillée que celle que vous recevez du point final d’envoi de SMS.

Pour le code, vous utiliserez toujours le “MessageDetails” que vous avez créé précédemment et écrirez un point d’accès REST dans la classe “BroadcastSMSRestController”.

Dans la classe “BroadcastSMSRestController”, sous la méthode “sendSMStoUpto1000Numbers”, ajoutez la méthode suivante :

@PostMapping("/api/sms20000")
public ResponseEntity<String> sendSMSupTo20000Numbers(@RequestBody MessageDetails messageDetails) {
    SmsCampaignApi smsCampaignApi = new SmsCampaignApi(clickSendConfig);
    SmsCampaign campaign = new SmsCampaign(); // SmsCampaign | SmsCampaign model

    campaign.listId(messageDetails.getListId());
    campaign.name(messageDetails.getSmsCampaignName());
    campaign.body(messageDetails.getMessageBody());

    try {
        String response = smsCampaignApi.smsCampaignsSendPost(campaign);
        return new ResponseEntity<>(response, HttpStatus.OK);
    } catch (ApiException e) {
        e.printStackTrace();
    }
    
    return new ResponseEntity<>("Exception when calling SmsCampaignApi#smsCampaignsSendPost", HttpStatus.BAD_REQUEST);
}

Le code ci-dessus fait pratiquement la même chose que le code utilisé pour la méthode “sendSMStoUpto1000Numbers”. Le seul changement significatif est qu’il utilise “SmsCampaignApi” pour envoyer le SMS et “SmsCampaign” pour construire les détails du SMS.

Test du point final de la campagne SMS

Pour tester le point d’accès, ouvrez Postman et faites une demande POST à “http://localhost:8080/api/sms20000” avec ce corps JSON :

{
    "messageBody": "Hey, This is a Marketing test message",
    "listId": "<your_list_id>",
    "sendingSource": "Java Application",
    "smsCampaignName": "Marketing message"
}
Test du point d'arrivée de la campagne SMS

Pour en savoir plus sur la ‘SmsCampaignApi’, consultez notre documentation sur l’API Java.


Vous êtes prêt à envoyer des messages texte en Java

Si vous avez suivi chaque étape, félicitations – vous venez d’apprendre à envoyer des SMS à partir de votre application Java Spring Boot.

Pour un meilleur aperçu du code complet de chaque point d’extrémité, vous pouvez forker et cloner le repo sur GitHub. Ou bien, cliquez directement sur notre documentation Java API SMS.