Passer au contenu principal

Con le API SMS di Sendapp
puoi automatizzare le notifiche SMS
avec n'importe quelle plateforme

Conçu pour les petites et moyennes entreprises,
pour révolutionner la communication avec les clients.

Prova Gratuita

WebHook Example Script

Create a script with the following content and provide its URL as WebHook.

define("API_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

try {
    if (isset($_SERVER["HTTP_X_SG_SIGNATURE"])) {
        $hash = base64_encode(hash_hmac('sha256', $_POST["messages"], API_KEY, vrai));
        if ($hash === $_SERVER["HTTP_X_SG_SIGNATURE"]) {
            $messages = json_decode($_POST["messages"], vrai);

            /**
             * For example :-
             * $messages = [
             *                 0 => [
             *                          "ID" => "1",
             *                          "number" => "+911234567890",
             *                          "message" => "This is a test message.",
             *                          "deviceID" => "1",
             *                          "simSlot" => "0",
             *                          "userID" => "1",
             *                          "status" => "Received",
             *                          "sentDate" => "2018-10-20T00:00:00+02:00",
             *                          "deliveredDate" => "2018-10-20T00:00:00+02:00"
             *                          "groupID" => null
             *                      ]
             *             ]
             *
             * senDate represents the date and time when the message was received on the device.
             * deliveredDate represents the date and time when the message was received by the server.
             */

            foreach ($messages as $message) {
                if(strtolower($message["message"]) === "hi") {
                    // Reply to message using API or execute some commands. Possibilities are limitless.
                }
            }
        } else {
            http_response_code(401);
            error_log("Signature don't match!");
        }
    } else {
        http_response_code(400);
        error_log("Signature not found!");
    }
} catch (Exception $e) {
    error_log($e->getMessage());
}

PHP Integration

Include following code in your PHP file to start sending messages.

define("SERVER", "https://sms.sendapp.live");
define("API_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

define("USE_SPECIFIED", 0);
define("USE_ALL_DEVICES", 1);
define("USE_ALL_SIMS", 2);

/**
 * @param string     $number   The mobile number where you want to send message.
 * @param string     $message  The message you want to send..
 * @param int|string $device   The ID of a device you want to use to send this message.
 * @param int        $schedule Set it to timestamp when you want to send this message.
 *
 * @return array     Returns The array containing information about the message.
 * @throws Exception If there is an error while sending a message.
 */
function sendSingleMessage($number, $message, $device = 0, $schedule = null)
{
    $url = SERVER . "/services/send.php";
    $postData = array('number' => $number, 'message' => $message, 'schedule' => $schedule, 'key' => API_KEY, 'devices' => $device);
    return sendRequest($url, $postData)["messages"][0];
}

/**
 * @param array $messages        The array containing numbers and messages.
 * @param int   $option          Set this to USE_SPECIFIED if you want to use devices and SIMs specified in devices argument.
 *                               Set this to USE_ALL_DEVICES if you want to use all available devices and their default SIM to send messages.
 *                               Set this to USE_ALL_SIMS if you want to use all available devices and all their SIMs to send messages.
 * @param array $devices         The array of ID of devices you want to use to send these messages.
 * @param int   $schedule        Set it to timestamp when you want to send these messages.
 * @param bool  $useRandomDevice Set it to true if you want to send messages using only one random device from selected devices.
 *
 * @return array     Returns The array containing messages.
 *                   For example :-
 *                   [
 *                      0 => [
 *                              "ID" => "1",
 *                              "number" => "+911234567890",
 *                              "message" => "This is a test message.",
 *                              "deviceID" => "1",
 *                              "simSlot" => "0",
 *                              "userID" => "1",
 *                              "status" => "Pending",
 *                              "sentDate" => "2018-10-20T00:00:00+02:00",
 *                              "deliveredDate" => null
 *                              "groupID" => ")V5LxqyBMEbQrl9*J$5bb4c03e8a07b7.62193871"
 *                           ]
 *                   ]
 * @throws Exception If there is an error while sending messages.
 */
function sendMessages($messages, $option = USE_SPECIFIED, $devices = [], $schedule = null, $useRandomDevice = false)
{
    $url = SERVER . "/services/send.php";
    $postData = [
        'messages' => json_encode($messages),
        'schedule' => $schedule,
        'key' => API_KEY,
        'devices' => json_encode($devices),
        'option' => $option,
        'useRandomDevice' => $useRandomDevice
    ];
    return sendRequest($url, $postData)["messages"];
}

/**
 * @param int    $listID   The ID of the contacts list where you want to send this message.
 * @param string $message  The message you want to send.
 * @param int    $option   Set this to USE_SPECIFIED if you want to use devices and SIMs specified in devices argument.
 *                         Set this to USE_ALL_DEVICES if you want to use all available devices and their default SIM to send messages.
 *                         Set this to USE_ALL_SIMS if you want to use all available devices and all their SIMs to send messages.
 * @param array  $devices  The array of ID of devices you want to use to send the message.
 * @param int    $schedule Set it to timestamp when you want to send this message.
 *
 * @return array     Returns The array containing messages.
 * @throws Exception If there is an error while sending messages.
 */
function sendMessageToContactsList($listID, $message, $option = USE_SPECIFIED, $devices = [], $schedule = null)
{
    $url = SERVER . "/services/send.php";
    $postData = [
        'listID' => $listID,
        'message' => $message,
        'schedule' => $schedule,
        'key' => API_KEY,
        'devices' => json_encode($devices),
        'option' => $option
    ];
    return sendRequest($url, $postData)["messages"];
}

/**
 * @param int $id The ID of a message you want to retrieve.
 *
 * @return array     The array containing a message.
 * @throws Exception If there is an error while getting a message.
 */
function getMessageByID($id) {
    $url = SERVER . "/services/read-messages.php";
    $postData = [
        'key' => API_KEY,
        'id' => $id
    ];
    return sendRequest($url, $postData)["messages"][0];
}

/**
 * @param string $groupID The group ID of messages you want to retrieve.
 *
 * @return array     The array containing messages.
 * @throws Exception If there is an error while getting messages.
 */
function getMessagesByGroupID($groupID) {
    $url = SERVER . "/services/read-messages.php";
    $postData = [
        'key' => API_KEY,
        'groupId' => $groupID
    ];
    return sendRequest($url, $postData)["messages"];
}

/**
 * @param string $status The status of messages you want to retrieve.
 * @param int $startTimestamp Search for messages sent or received after this time.
 * @param int $endTimestamp Search for messages sent or received before this time.
 *
 * @return array     The array containing messages.
 * @throws Exception If there is an error while getting messages.
 */
function getMessagesByStatus($status, $startTimestamp, $endTimestamp)
{
    $url = SERVER . "/services/read-messages.php";
    $postData = [
        'key' => API_KEY,
        'status' => $status,
        'startTimestamp' => $startTimestamp,
        'endTimestamp' => $endTimestamp
    ];
    return sendRequest($url, $postData)["messages"];
}

/**
 * @param int $listID       The ID of the contacts list where you want to add this contact.
 * @param string $number    The mobile number of the contact.
 * @param string $name      The name of the contact.
 * @param bool $resubscribe Set it to true if you want to resubscribe this contact if it already exists.
 *
 * @return array     The array containing a newly added contact.
 * @throws Exception If there is an error while adding a new contact.
 */
function addContact($listID, $number, $name = null, $resubscribe = false)
{
    $url = SERVER . "/services/manage-contacts.php";
    $postData = [
        'key' => API_KEY,
        'listID' => $listID,
        'number' => $number,
        'name' => $name,
        'resubscribe' => $resubscribe
    ];
    return sendRequest($url, $postData)["contact"];
}

/**
 * @param int $listID    The ID of the contacts list from which you want to unsubscribe this contact.
 * @param string $number The mobile number of the contact.
 *
 * @return array     The array containing the unsubscribed contact.
 * @throws Exception If there is an error while setting subscription to false.
 */
function unsubscribeContact($listID, $number)
{
    $url = SERVER . "/services/manage-contacts.php";
    $postData = [
        'key' => API_KEY,
        'listID' => $listID,
        'number' => $number,
        'unsubscribe' => vrai
    ];
    return sendRequest($url, $postData)["contact"];
}

/**
 * @return string    The amount of message credits left.
 * @throws Exception If there is an error while getting message credits.
 */
function getBalance()
{
    $url = SERVER . "/services/send.php";
    $postData = [
        'key' => API_KEY,
    ];
    $credits = sendRequest($url, $postData)["credits"];
    return is_null($credits) ? "Unlimited" : $credits;
}

function sendRequest($url, $postData)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, vrai);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, vrai);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if (curl_errno($ch)) {
        throw new Exception(curl_error($ch));
    }
    curl_close($ch);
    if ($httpCode == 200) {
        $json = json_decode($response, vrai);
        if ($json == false) {
            if (empty($response)) {
                throw new Exception("Missing data in request. Please provide all the required information to send messages.");
            } else {
                throw new Exception($response);
            }
        } else {
            if ($json["success"]) {
                return $json["data"];
            } else {
                throw new Exception($json["error"]["message"]);
            }
        }
    } else {
        throw new Exception("HTTP Error Code : {$httpCode}");
    }
}

Send Single Message

try {
    // Send a message using the primary device.
    $msg = sendSingleMessage("+911234567890", "This is a test of single message.");

    // Send a message using the Device ID 1.
    $msg = sendSingleMessage("+911234567890", "This is a test of single message.", 1);
	
    // Send a message using the SIM in slot 1 of Device ID 1 (Represented as "1|0").
    // SIM slot is an index so the index of the first SIM is 0 and the index of the second SIM is 1.
    // In this example, 1 represents Device ID and 0 represents SIM slot index.
    $msg = sendSingleMessage("+911234567890", "This is a test of single message.", "1|0");

    // Send scheduled message using the primary device.
    $msg = sendSingleMessage("+911234567890", "This is a test of schedule feature.", null, strtotime("+2 minutes"));
    print_r($msg);

    echo "Successfully sent a message.";
} catch (Exception $e) {
    echo $e->getMessage();
}

Send Bulk Messages

$messages = array();

for ($i = 1; $i <= 12; $i++) {
    array_push($messages,
        [
            "number" => "+911234567890",
            "message" => "This is a test #{$i} of PHP version. Testing bulk message functionality."
        ]);
}

try {
    // Send messages using the primary device.
    sendMessages($messages);

    // Send messages using default SIM of all available devices. Messages will be split between all devices.
    sendMessages($messages, USE_ALL_DEVICES);
	
    // Send messages using all SIMs of all available devices. Messages will be split between all SIMs.
    sendMessages($messages, USE_ALL_SIMS);

    // Send messages using only specified devices. Messages will be split between devices or SIMs you specified.
    // If you send 12 messages using this code then 4 messages will be sent by Device ID 1, other 4 by SIM in slot 1 of 
    // Device ID 2 (Represendted as "2|0") and remaining 4 by SIM in slot 2 of Device ID 2 (Represendted as "2|1").
    sendMessages($messages, USE_SPECIFIED, [1, "2|0", "2|1"]);
    
    // Send messages on schedule using the primary device.
    sendMessages($messages, null, null, strtotime("+2 minutes"));
    
    // Send a message to contacts in contacts list with ID of 1.
    sendMessageToContactsList(1, "Test", USE_SPECIFIED, 1);
    
    // Send a message on schedule to contacts in contacts list with ID of 1.
    $msgs = sendMessageToContactsList(1, "Test", null, null, strtotime("+2 minutes"));
    
    print_r($msgs);

    echo "Successfully sent bulk messages.";
} catch (Exception $e) {
    echo $e->getMessage();
}

Get remaining message credits

try {
    $credits = getBalance();
    echo "Message Credits Remaining: {$credits}";
} catch (Exception $e) {
    echo $e->getMessage();
}

Get messages and their current status

try {
    // Get a message using the ID.
    $msg = getMessageByID(1);
    print_r($msg);

    // Get messages using the Group ID.
    $msgs = getMessagesByGroupID(')V5LxqyBMEbQrl9*J$5bb4c03e8a07b7.62193871');
    print_r($msgs);
    
    // Get messages received in last 24 hours.
    $msgs = getMessagesByStatus("Received", time() - 86400);
    print_r($msgs);
} catch (Exception $e) {
    echo $e->getMessage();
}

Gestisci contatti

try {
    // Add a new contact to contacts list 1 or resubscribe the contact if it already exists.
    $contact = addContact(1, "+911234567890", "Test", vrai);
    print_r($contact);
    
    // Unsubscribe a contact using the mobile number.
    $contact = unsubscribeContact(1, "+911234567890");
    print_r($contact);
} catch (Exception $e) {
    echo $e->getMessage();
}



C# Integration

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
using Gateway_Sample_Application.Properties;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace SMS
{
    static class API
    {
        private static readonly string Server = "https://sms.sendapp.live"
        private static readonly string Key = "6e1bdb4ed91f3b83071dd5a520c9d226ea19245e";

        public enum Option
        {
            USE_SPECIFIED = 0,
            USE_ALL_DEVICES = 1,
            USE_ALL_SIMS = 2
        }

        /// <summary>
        /// Send single message to specific mobile number.
        /// </summary>
        /// <param name="number">The mobile number where you want to send message.</param>
        /// <param name="message">The message you want to send.</param>
        /// <param name="device">The ID of a device you want to use to send this message.</param>
        /// <param name="schedule">Set it to timestamp when you want to send this message.</param>
        /// <exception>If there is an error while sending a message.</exception>
        /// <returns>The dictionary containing information about the message.</returns>
        public static Dictionary<string, object> SendSingleMessage(string Numéro, string message, string device = "0", long? schedule = null)
        {
            var values = new Dictionary<string, object>
            {
                { "number", Numéro},
                { "message", message},
                { "schedule", schedule },
                { "key", Key },
                { "devices", device }
            };

            return GetMessages(GetResponse($"{Server}/services/send.php", values)["messages"])[0];
        }

        /// <summary>
        /// Send multiple messages to different mobile numbers.
        /// </summary>
        /// <param name="messages">The array containing numbers and messages.</param>
        /// <param name="option">Set this to USE_SPECIFIED if you want to use devices and SIMs specified in devices argument.
        /// Set this to USE_ALL_DEVICES if you want to use all available devices and their default SIM to send messages.
        /// Set this to USE_ALL_SIMS if you want to use all available devices and all their SIMs to send messages.</param>
        /// <param name="devices">The array of ID of devices you want to use to send these messages.</param>
        /// <param name="schedule">Set it to timestamp when you want to send this message.</param>
        /// <param name="useRandomDevice">Set it to true if you want to send messages using only one random device from selected devices.</param>
        /// <exception>If there is an error while sending messages.</exception>
        /// <returns>The array containing messages.</returns>
        public static Dictionary<string, object>[] SendMessages(List<Dictionary<string, string>> messages, Option option = Option.USE_SPECIFIED, string[] devices = null, long? schedule = null, bool useRandomDevice = false)
        {
            var values = new Dictionary<string, object>
            {
                { "messages", JsonConvert.SerializeObject(messages)},
                { "schedule", schedule },
                { "key", Key },
                { "devices", devices },
                { "option", (int) option },
                { "useRandomDevice", useRandomDevice }
            };

            return GetMessages(GetResponse($"{Server}/services/send.php", values)["messages"]);
        }

        /// <summary>
        /// Send a message to contacts in specified contacts list.
        /// </summary>
        /// <param name="listID">The ID of the contacts list where you want to send this message.</param>
        /// <param name="message">The message you want to send.</param>
        /// <param name="option">Set this to USE_SPECIFIED if you want to use devices and SIMs specified in devices argument.
        /// Set this to USE_ALL_DEVICES if you want to use all available devices and their default SIM to send messages.
        /// Set this to USE_ALL_SIMS if you want to use all available devices and all their SIMs to send messages.</param>
        /// <param name="devices">The array of ID of devices you want to use to send these messages.</param>
        /// <param name="schedule">Set it to timestamp when you want to send this message.</param>
        /// <exception>If there is an error while sending messages.</exception>
        /// <returns>The array containing messages.</returns>
        public static Dictionary<string, object>[] SendMessageToContactsList(int listID, string message, Option option = Option.USE_SPECIFIED, string[] devices = null, long? schedule = null)
        {
            var values = new Dictionary<string, object>
            {
                { "listID", listID},
                { "message", message},
                { "schedule", schedule },
                { "key", Key },
                { "devices", devices },
                { "option", (int) option }
            };

            return GetMessages(GetResponse($"{Server}/services/send.php", values)["messages"]);
        }

        /// <summary>
        /// Get a message using the ID.
        /// </summary>
        /// <param name="id">The ID of a message you want to retrieve.</param>
        /// <exception>If there is an error while getting a message.</exception>
        /// <returns>The dictionary containing information about the message.</returns>
        public static Dictionary<string, object> GetMessageByID(int id)
        {
            var values = new Dictionary<string, object>
            {
                { "key", Key },
                { "id", id }
            };

            return GetMessages(GetResponse($"{Server}/services/read-messages.php", values)["messages"])[0];
        }

        /// <summary>
        /// Get messages using the Group ID.
        /// </summary>
        /// <param name="groupID">The group ID of messages you want to retrieve.</param>
        /// <exception>If there is an error while getting messages.</exception>
        /// <returns>The array containing messages.</returns>
        public static Dictionary<string, object>[] GetMessagesByGroupID(string groupID)
        {
            var values = new Dictionary<string, object>
            {
                { "key", Key },
                { "groupId", groupID }
            };

            return GetMessages(GetResponse($"{Server}/services/read-messages.php", values)["messages"]);
        }

        /// <summary>
        /// Get messages using the status.
        /// </summary>
        /// <param name="status">The status of messages you want to retrieve.</param>
        /// <param name="startTimestamp">Search for messages sent or received after this time.</param>
        /// <param name="endTimestamp">Search for messages sent or received before this time.</param>
        /// <exception>If there is an error while getting messages.</exception>
        /// <returns>The array containing messages.</returns>
        public static Dictionary<string, object>[] GetMessagesByStatus(string status, long? startTimestamp = null, long? endTimestamp = null)
        {
            var values = new Dictionary<string, object>
            {
                { "key", Key },
                { "status", status },
                { "startTimestamp", startTimestamp },
                { "endTimestamp", endTimestamp }
            };

            return GetMessages(GetResponse($"{Server}/services/read-messages.php", values)["messages"]);
        }
        
        /// <summary>
        /// Add a new contact to contacts list.
        /// </summary>
        /// <param name="listID">The ID of the contacts list where you want to add this contact.</param>
        /// <param name="number">The mobile number of the contact.</param>
        /// <param name="name">The name of the contact.</param>
        /// <param name="resubscribe">Set it to true if you want to resubscribe this contact if it already exists.</param>
        /// <returns>A dictionary containing details about a newly added contact.</returns>
        public static Dictionary<string, object> AddContact(int listID, string Numéro, string name = null, bool resubscribe = false)
        {
            var values = new Dictionary<string, object>
            {
                {"key", Key},
                {"listID", listID},
                {"number", Numéro},
                {"name", name},
                {"resubscribe", resubscribe ? '1' : '0'},
            };
            JObject jObject = (JObject) GetResponse($"{Server}/services/manage-contacts.php", values)["contact"];
            return jObject.ToObject<Dictionary<string, object>>();
        }
        
        /// <summary>
        /// Unsubscribe a contact from the contacts list.
        /// </summary>
        /// <param name="listID">The ID of the contacts list from which you want to unsubscribe this contact.</param>
        /// <param name="number">The mobile number of the contact.</param>
        /// <returns>A dictionary containing details about the unsubscribed contact.</returns>
        public static Dictionary<string, object> UnsubscribeContact(int listID, string Numéro)
        {
            var values = new Dictionary<string, object>
            {
                {"key", Key},
                {"listID", listID},
                {"number", Numéro},
                {"unsubscribe", '1'}
            };
            JObject jObject = (JObject)GetResponse($"{Server}/services/manage-contacts.php", values)["contact"];
            return jObject.ToObject<Dictionary<string, object>>();
        }
        
        /// <summary>
        /// Get remaining message credits.
        /// </summary>
        /// <exception>If there is an error while getting message credits.</exception>
        /// <returns>The amount of message credits left.</returns>
        public static string GetBalance()
        {
            var values = new Dictionary<string, object>
            {
                {"key", Key}
            };
            JToken credits = GetResponse($"{Server}/services/send.php", values)["credits"];
            if (credits.Type != JTokenType.Null)
            {
                return credits.ToString();
            }
            return "Unlimited";
        }

        private static Dictionary<string, object>[] GetMessages(JToken messagesJToken)
        {
            JArray jArray = (JArray)messagesJToken;
            var messages = new Dictionary<string, object>[jArray.Count];
            for (var index = 0; index < jArray.Count; index++)
            {
                messages[index] = jArray[index].ToObject<Dictionary<string, object>>();
            }
            return messages;
        }

        private static JToken GetResponse(string url, Dictionary<string, object> postData)
        {
            var request = (HttpWebRequest)WebRequest.Create(url);
            var dataString = CreateDataString(postData);
            var data = Encoding.UTF8.GetBytes(dataString);

            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;
            ServicePointManager.Expect100Continue = vrai;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            using (var stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

            var response = (HttpWebResponse)request.GetResponse();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
                {
                    var jsonResponse = streamReader.ReadToEnd();
                    try
                    {
                        JObject jObject = JObject.Parse(jsonResponse);
                        if ((bool)jObject["success"])
                        {
                            return jObject["data"];
                        }
                        throw new Exception(jObject["error"]["message"].ToString());
                    }
                    catch (JsonReaderException)
                    {
                        if (string.IsNullOrEmpty(jsonResponse))
                        {
                            throw new InvalidDataException("Missing data in request. Please provide all the required information to send messages.");
                        }
                        throw new Exception(jsonResponse);
                    }
                }
            }

            throw new WebException($"HTTP Error : {(int)response.StatusCode} {response.StatusCode}");
        }

        private static string CreateDataString(Dictionary<string, object> data)
        {
            StringBuilder dataString = new StringBuilder();
            bool first = vrai;
            foreach (var obj in data)
            {
                if (obj.Value != null)
                {
                    if (first)
                    {
                        first = false;
                    }
                    else
                    {
                        dataString.Append("&");
                    }
                    dataString.Append(HttpUtility.UrlEncode(obj.Key));
                    dataString.Append("=");
                    dataString.Append(obj.Value is string[]
                        ? HttpUtility.UrlEncode(JsonConvert.SerializeObject(obj.Value))
                        : HttpUtility.UrlEncode(obj.Value.ToString()));
                }
            }
            return dataString.ToString();
        }
    }
}

Send Single Message

try
{
    // Send a message using the primary device.
    SMS.API.SendSingleMessage("+911234567890", "This is a test of single message.");

    // Send a message using the Device ID 1.
    Dictionary<string, object> message = SMS.API.SendSingleMessage("+911234567890", "This is a test of single message.", "1");
	
    // Send a message using the SIM in slot 1 of Device ID 1 (Represented as "1|0").
    // SIM slot is an index so the index of the first SIM is 0 and the index of the second SIM is 1.
    // In this example, 1 represents Device ID and 0 represents SIM slot index.
    Dictionary<string, object> message = SMS.API.SendSingleMessage("+911234567890", "This is a test of single message.", "1|0");

    // Send scheduled message using the primary device.
    long timestamp = (long) DateTime.UtcNow.AddMinutes(2).Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
    Dictionary<string, object> message = SendSingleMessage(textBoxNumber.Text, textBoxMessage.Text, null, timestamp);
    
    MessageBox.Show("Successfully sent a message.");
}
catch (Exception exception)
{
    MessageBox.Show(exception.Message, "!Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Send Bulk Messages

List<Dictionary<string, string>> messages = new List<Dictionary<string, string>>();
for (int i = 1; i <= 12; i++)
{
    var message = new Dictionary<string, string>
    {
        { "number", "+911234567890" },
        { "message", "This is a test #{$i} of C# version. Testing bulk message functionality." }
    };
    messages.Add(message);
}

try
{
    // Send messages using the primary device.
    SMS.API.SendMessages(messages);

    // Send messages using default SIM of all available devices. Messages will be split between all devices.
    SMS.API.SendMessages(messages, SMS.API.Option.USE_ALL_DEVICES);
	
    // Send messages using all SIMs of all available devices. Messages will be split between all SIMs.
    SMS.API.SendMessages(messages, SMS.API.Option.USE_ALL_SIMS);

    // Send messages using only specified devices. Messages will be split between devices or SIMs you specified.
    // If you send 12 messages using this code then 4 messages will be sent by Device ID 1, other 4 by SIM in slot 1 of 
    // Device ID 2 (Represendted as "2|0") and remaining 4 by SIM in slot 2 of Device ID 2 (Represendted as "2|1").
    SMS.API.SendMessages(messages, SMS.API.Option.USE_SPECIFIED, new [] {"1", "2|0", "2|1"});
    
    // Send messages on schedule using the primary device.
    long timestamp = (long) DateTime.UtcNow.AddMinutes(2).Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
    Dictionary<string, object>[] messages = SMS.API.SendMessages(messages, Option.USE_SPECIFIED, null, timestamp);
    
    // Send a message to contacts in contacts list with ID of 1.
    Dictionary<string, object>[] messages = SMS.API.SendMessageToContactsList(1, "Test", SMS.API.Option.USE_SPECIFIED, new [] {"1"});

    // Send a message on schedule to contacts in contacts list with ID of 1.
    Dictionary<string, object>[] messages = SMS.API.SendMessageToContactsList(1, "Test #1", Option.USE_SPECIFIED, null, timestamp);
    
    MessageBox.Show("Success");
}
catch (Exception exception)
{
    MessageBox.Show(exception.Message, "!Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Get remaining message credits

try
{
    string credits = SMS.API.GetBalance();
    MessageBox.Show($"Message Credits Remaining: {credits}");
}
catch (Exception exception)
{
    MessageBox.Show(exception.Message, "!Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Get messages and their current status

try 
{
    // Get a message using the ID.
    Dictionary<string, object> message = SMS.API.GetMessageByID(1);

    // Get messages using the Group ID.
    Dictionary<string, object>[] messages = SMS.API.GetMessagesByGroupID(")V5LxqyBMEbQrl9*J$5bb4c03e8a07b7.62193871");
    
    // Get messages received in last 24 hours.
    long timestamp = (long) DateTime.UtcNow.AddHours(-24).Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
    GetMessagesByStatus("Received", timestamp);
}
catch (Exception exception)
{
    MessageBox.Show(exception.Message, "!Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Gestisci contatti

try {
    // Add a new contact to contacts list 1 or resubscribe the contact if it already exists.
    Dictionary<string, object> contact = SMS.API.AddContact(1, "+911234567890", "Test C#", vrai);
    
    // Unsubscribe a contact using the mobile number.
    Dictionary<string, object> contact = UnsubscribeContact(1, "+911234567890");
}
catch (Exception exception)
{
    MessageBox.Show(exception.Message, "!Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Sélectionnez votre devise
EUR euro
USD Dollar américain