ReactSMS API

Démarrage rapide

Introduction

Comme il est de nature dans l'usage de tout API, il faut obtenir vos identifiants de connexion afin de pourvoir exploiter une API quelconque. Dans notre cas, vous avez également besoin de ces identifiants afin de suivre et exécuter le reste du tutoriel. Si vous avez oublié ou vous ne maitrisez pas par coeur, nous vous suggerons cette page afin de les récupérer.
Les paramètres dont vous avez besoin sont: authKey=rs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, apiKey=rs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Ensuite, encodez ces paramètres en base64 en suivant cet exemple en php:
<?php $token = base64_encode($authKey.':'.$apiKey) ?>
Assurez-vous d'utiliser les paramètres dans l'ordre. Sans celà, votre code ne marchera pas.

L'URL de base à utiliser est: https://react-sms.com/messages

Les points de terminaison sont:

  • /get_balance requête GET pour recupérer le solde | response_code:200
  • /get_contacts requête GET pour recupérer les contacts | response_code:200
  • /get_services requête GET pour recupérer les services | response_code:200
  • /send requête POST pour envoyer un nouveau message | response_code:201
  • /create_service requête POST pour créer un service | response_code:201

Pour envoyer des SMS, il faut aussi la clé du service concerné appelé service key. C'est-à-dire le service au compte duquel vous souhaitez envoyer le SMS. Cette clé, vous pouvez la retrouver dans la liste de vos services. Elle est constituée de 06 chiffres.
Exemple: <?php $serviceKey="0OOOOO" ?>

Les codes d'erreur utiles sont:

  • 400:unauthorize
  • 500:server error
  • 404:resource not found
  • 201:created
  • 200:OK

PHP Source Code

Les paramètres pour envoyer un message sont:
  • message | string | obligatoire
  • numbers | array | obligatoire | Ex: [(object)['zip_code'=>"+225","number"=>"07XXXXXXXX"],...]
  • serviceKey | string | obligatoire
  • callback_url | string | facultatif
  • intervalle | string| facultatif | Ex: '2022/12/21-2022/12/22'
  • heure | string | facultatif | Ex: '19:20'
  • frequence | integer | facultatif
  • is_group | boolean | facultatif
Le point de terminaison à utiliser est:
  • /send
Method:
  • POST
                
                    //POST Request
                    //Envoi de SMS massifs 

                    <?php
                    // Authentification ID
                    $authKey = "rs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                    $apiKey = "rs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                    $token = base64_encode($authKey.":".$apiKey);
                    $serviceKey = "000000";

                    // Payload 
                    $base_url = "https://react-sms.com/messages";
                    $endpoint = "send";
                    $numbers = [
                        (object) ["zip_code":"+225", "number":"07XXXXXXXX"],
                        (object) ["zip_code":"+225", "number":"01XXXXXXXX"] 
                    ];
                    $message = "Bonjour, c'est juste un test !";

                    public function send_sms() {
                        $payload = [
                            "message" => $this->message, 
                            "numbers" => $this->numbers,
                            "serviceKey" => $this->serviceKey
                        ];
                        $headers = array(
                            "Accept: application/json", 
                            "Authorization: Bearer ".$this->token,
                        );

                        try {
                            $ch = curl_init($this->base_url."/".$this->endpoint);
                            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                            curl_setopt($ch, CURLOPT_HEADER, 1);
                            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
                            curl_setopt($ch, CURLOPT_POST, 1);
                            curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
                            $response = curl_exec($ch);
                            $err = curl_error($ch);
                            curl_close($ch);

                            if($err) {
                                return $err;
                            } else {
                                return $response;
                            }
                        } catch(\Exception $e) {
                            return $e->getMessage();
                        }
                    }

                    // Execute code
                    echo $this->send_sms();
                    
                
            

Exemple de reponse JSON

                
                    // Response code 201

                    // Send SMS result data:
                    {
                        "message_body": {
                            "message": "Bonjour, c'est juste un test !",
                            "segment": 1,
                            "callback_url": null,
                            "adresse_ip": "127.0.0.1",
                            "smsid": "SMS1671658179",
                            "intervalle_date_envoi": null,
                            "heure_envoi": null,
                            "frequence_envoi": 1,
                            "frequence_envoi_restant": 1,
                            "created_at": "2022-12-21T21:29:39.000000Z",
                            "updated_at": "2022-12-21T21:29:39.000000Z"
                        },
                        "serviceKey": "000000",
                        "apiKey": "rs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
                        "sms_status": "attente",
                        "to": "[{\"zip_code\":\"+225\",\"number\":\"07XXXXXXXX\"},{\"zip_code\":\"+225\",\"number\":\"01XXXXXXXX\"}]"
                    }
                
            

PHP Source Code

Les paramètres pour recupérer la balance sont:
  • Aucun paramètre à soumettre
Le point de terminaison à utiliser est:
  • /get_balance
Method:
  • GET
NB: Cette requête est la même pour toutes les autres requêtes GET. Il suffit de modifier le endpoint
                
                    //GET Request
                    //Get balance

                    <?php
                    // Authentification ID
                    $authKey = "rs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                    $apiKey = "rs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                    $token = base64_encode($authKey.":".$apiKey);

                    // Payload 
                    $base_url = "https://react-sms.com/messages";
                    $endpoint = "get_balance";

                    public function get_balance() {
                        $headers = array(
                            "Accept: application/json", 
                            "Authorization: Bearer ".$this->token,
                        );

                        try {
                            $ch = curl_init($this->base_url."/".$this->endpoint);
                            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                            curl_setopt($ch, CURLOPT_HEADER, 1);
                            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
                            curl_setopt($ch, CURLOPT_POST, false);
                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
                            $response = curl_exec($ch);
                            $err = curl_error($ch);
                            curl_close($ch);

                            if($err) {
                                return $err;
                            } else {
                                return $response;
                            }
                        } catch(\Exception $e) {
                            return $e->getMessage();
                        }
                    }

                    // Execute code
                    echo $this->get_balance();
                    
                
            

Exemple de reponse JSON

                
                    // Response code 200

                    // Get SMS balance result data:
                    {
                        "balance": 199,
                        "request_date": "2022-12-21 23:10:20"
                    }
                
            

PHP Source Code

Les paramètres pour créer un service sont:
  • service_name | string | obligatoire
  • quota_sms | integer | obligatoire | Default: 0
  • active_quota | boolean | obligatoire
  • description | string | obligatoire
Le point de terminaison à utiliser est:
  • /create_service
Method:
  • POST
                
                    //POST Request
                    //Create service

                    <?php
                    // Authentification ID
                    $authKey = "rs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                    $apiKey = "rs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                    $token = base64_encode($authKey.":".$apiKey);

                    // Payload 
                    $base_url = "https://react-sms.com/messages";
                    $endpoint = "create_service";

                    $service_name = "service test";
                    $quota_sms = 0;
                    $active_quota = false;
                    $description = "juste un test";

                    public function create_service() {
                        $payload = [
                            "service_name" => $this->service_name, 
                            "quota_sms" => $this->quota_sms,
                            "active_quota" => $this->active_quota,
                            "description" => $this->description
                        ];
                        $headers = array(
                            "Accept: application/json", 
                            "Authorization: Bearer ".$this->token,
                        );

                        try {
                            $ch = curl_init($this->base_url."/".$this->endpoint);
                            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                            curl_setopt($ch, CURLOPT_HEADER, 1);
                            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
                            curl_setopt($ch, CURLOPT_POST, 1);
                            curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
                            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
                            $response = curl_exec($ch);
                            $err = curl_error($ch);
                            curl_close($ch);

                            if($err) {
                                return $err;
                            } else {
                                return $response;
                            }
                        } catch(\Exception $e) {
                            return $e->getMessage();
                        }
                    }

                    // Execute code
                    echo $this->create_service();
                    
                
            

Exemple de reponse JSON

                
                    // Response code 201

                    // Create service result data:
                    {
                        "service_name": "service test",
                        "quota_sms": 0,
                        "active_quota": false,
                        "description": "juste un test",
                        "serviceKey": "041853",
                        "already_exists": false
                    }