Exemple API SMS Java

Pour que cet exemple fonctionne, vous aurez besoin d'ajouter les jars de la librairie Jackson à votre classpath. Si vous utilisez Maven, ajoutez simplement les lignes suivantes à votre pom.xml. Sinon, vous pouvez simplement télécharger les jars (Databind, Core and Annotations) ici.


        <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.8</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.8</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
    


import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

public class Main {

    public static void main(String[] args) throws JsonProcessingException {

        ObjectMapper mapper = new ObjectMapper();
        mapper.getFactory().configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);

        ObjectNode messages = mapper.createObjectNode();
        messages.put("text", "Message via API");
        messages.put("type", "alert");
        messages.put("sender", "");

        ObjectNode recipients = mapper.createObjectNode();
        recipients.put("value", "33612345678");

        ObjectNode sms = mapper.createObjectNode();
        ObjectNode data = mapper.createObjectNode();
        ArrayNode numero = mapper.createArrayNode();

        ObjectNode gsm = mapper.createObjectNode();

        numero.add(recipients);
        gsm.set("gsm",numero);

        sms.set("message",messages);
        sms.set("recipients",gsm);

        data.putPOJO("sms",sms);

        String payload = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(data);

        try {
            Main hce = new Main();
            String response = hce.post("https://api.smsfactor.com/send", payload);
            System.out.println(response);
        } catch(IOException ioe) {
            ioe.printStackTrace();
        }

    }
    public String post(String postUrl, String data) throws IOException {
        URL url = new URL(postUrl);
        String token = "your.token";//Your first token must be generated on our plateform at https://my.smsfactor.com/developers/api-tokens
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("Accept", "application/json");
        con.setRequestProperty("Authorization","Bearer " + token);
        con.setDoOutput(true);

        this.sendData(con, data);

        return this.read(con.getInputStream());
    }

    protected void sendData(HttpURLConnection con, String data) throws IOException {
        DataOutputStream wr = null;
        try {
            wr = new DataOutputStream(con.getOutputStream());
            wr.writeBytes(data);
            wr.flush();
            wr.close();
        } catch(IOException exception) {
            throw exception;
        } finally {
            this.closeQuietly(wr);
        }
    }

    private String read(InputStream is) throws IOException {
        BufferedReader in = null;
        String inputLine;
        StringBuilder body;
        try {
            in = new BufferedReader(new InputStreamReader(is));

            body = new StringBuilder();

            while ((inputLine = in.readLine()) != null) {
                body.append(inputLine);
            }
            in.close();

            return body.toString();
        } catch(IOException ioe) {
            throw ioe;
        } finally {
            this.closeQuietly(in);
        }
    }

    protected void closeQuietly(Closeable closeable) {
        try {
            if( closeable != null ) {
                closeable.close();
            }
        } catch(IOException ex) {

        }
    }
}
  	

Quand utiliser une API SMS en Java ?

Optimisez vos communications avec notre API SMS conçue pour les applications Java. En intégrant facilement l'envoi de SMS dans vos projets Java, vous simplifiez et améliorez vos processus de communication.

Quelques exemples typiques d'utilisation incluent :

  • envoi de SMS pour confirmer les commandes et réservations effectuées via une application e-commerce ;
  • notifications par SMS pour informer les utilisateurs des mises à jour ou des maintenances programmées sur votre plateforme ;
  • alertes SMS en temps réel pour les incidents et urgences ;
  • envois de masse pour promouvoir vos produits ou informer toute votre base de clients et d’utilisateurs.

Pourquoi choisir l'API SMS Java de SMSFactor ?

Notre API SMS pour Java garantit une fiabilité et une sécurité optimales avec un uptime de 99,9 %. Vos données et celles de vos clients sont protégées selon les normes RGPD ! Et nous mettons en place des mesures d’anti-flood afin de protéger vos comptes et vos crédits SMS.

Avec l'API SMSFactor, vous bénéficiez d'un support technique dédié pour une intégration fluide. Nous vous aidons à intégrer notre API dans vos applications Java, et nous vous offrons des conseils pratiques ainsi qu'un support continu.

Les fonctionnalités avancées de notre API sont conçues pour répondre aux besoins variés de vos applications :

  • utilisation de webhooks pour une gestion efficace des données d'envoi de SMS ;
  • outils de simulation pour tester vos déclenchements automatiques de SMS ;
  • liens courts avec suivi pour maximiser l'engagement de vos destinataires ;
  • réception des réponses SMS et des accusés de réception pour un suivi précis ;
  • gestion automatisée des désabonnements pour respecter les préférences de vos clients.