Zum Hauptinhalt springen

Con le API SMS di Sendapp
puoi automatizzare le notifiche SMS
mit jeder Plattform

Konzipiert für kleine und mittelständische Unternehmen,
Kommunikation mit Kunden zu revolutionieren.

Prova Gratuita

WebHook-Beispielskript

Erstellen Sie ein Skript mit dem folgenden Inhalt und geben Sie seine URL als WebHook an.

definieren("API-Schlüssel", "Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

Versuchen {
    wenn (isset($_SERVER["HTTP_X_SG_SIGNATURE"])) {
        $hash = base64_encode(hash_hmac('Sha256', $_POST["Mitteilungen"], API-Schlüssel, falsch));
        wenn ($hash === $_SERVER["HTTP_X_SG_SIGNATURE"]) {
            $messages = json_decode($_POST["Mitteilungen"], falsch);

            / ** * Zum Beispiel: - * $messages = [* 0 => [* "ID" => "1", * "number" => "+911234567890", * "message" => "Dies ist eine Testnachricht . ", *" deviceID "=>" 1 ", *" simSlot "=>" 0 ", *" userID "=>" 1 ", *" status "=>" Received ", *" sentDate "=>" 2018-10-20T00: 00: 00 + 02: 00 ", *" geliefertDatum "=>" 2018-10-20T00: 00: 00 + 02: 00 "*" Gruppen-ID "=> null *] *] * * senDate stellt das Datum und die Uhrzeit dar, zu der die Nachricht auf dem Gerät empfangen wurde. * geliefertDatum gibt das Datum und die Uhrzeit an, zu der die Nachricht vom Server empfangen wurde. * /

            für jedes ($messages wie $message) {
                wenn(strtolower($message["Botschaft"]) === "Hallo") {
                    // Auf eine Nachricht mit der API antworten oder einige Befehle ausführen. Die Möglichkeiten sind grenzenlos.
                }
            }
        } sonst {
            http_response_code(401);
            Fehlerprotokoll("Unterschrift stimmt nicht überein!");
        }
    } sonst {
        http_response_code(400);
        Fehlerprotokoll("Unterschrift nicht gefunden!");
    }
} Fang (Ausnahme $e) {
    Fehlerprotokoll($e->getMessage());
}

PHP-Integration

Fügen Sie folgenden Code in Ihre PHP-Datei ein, um Nachrichten zu senden.

definieren("SERVER", "Https://sms.sendapp.live");
definieren("API-Schlüssel", "Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

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

/ ** * @param string $number Die Handynummer, an die Sie eine Nachricht senden möchten. * @param string $message Die Nachricht, die Sie senden möchten. * @param int | string $device Die ID eines Geräts, mit dem Sie diese Nachricht senden möchten. * @param int $schedule Setzen Sie den Zeitstempel, wenn Sie diese Nachricht senden möchten. * * @return array Rückgabe Das Array mit Informationen zur Nachricht. * @throws Exception Wenn beim Senden einer Nachricht ein Fehler auftritt. * /
Funktion sendSingleMessage($number, $message, $device = 0, $schedule = Null)
{
    $url = SERVER . "/Services/send.php";
    $postData = Array('Nummer' => $number, 'Botschaft' => $message, "Zeitpläne" => $schedule, 'Schlüssel' => API-Schlüssel, "Geräte" => $device);
    Rückkehr Anfrage senden($url, $postData)["Mitteilungen"][0];
}

/ ** * @param array $messages Das Array mit Zahlen und Nachrichten. * @param int 1TP2 Option Setzen Sie diese Option auf USE_SPECIFIED, wenn Sie Geräte und SIMs verwenden möchten, die im Geräteargument angegeben sind. * Setzen Sie dies auf USE_ALL_DEVICES, wenn Sie alle verfügbaren Geräte und deren Standard-SIM zum Senden von Nachrichten verwenden möchten. * Setzen Sie dies auf USE_ALL_SIMS, wenn Sie alle verfügbaren Geräte und alle ihre SIM-Karten zum Senden von Nachrichten verwenden möchten. * @param array $devices Das Array mit der ID der Geräte, die Sie zum Senden dieser Nachrichten verwenden möchten. * @param int $schedule Setzen Sie den Zeitstempel, wenn Sie diese Nachrichten senden möchten. * @param bool $useRandomDevice Setzen Sie diesen Wert auf true, wenn Sie Nachrichten mit nur einem zufälligen Gerät von ausgewählten Geräten senden möchten. * * @return array Rückgabe Das Array, das Nachrichten enthält. * Zum Beispiel: - * [* 0 => [* "ID" => "1", * "Nummer" => "+911234567890", * "Nachricht" => "Dies ist eine Testnachricht.", * " deviceID "=>" 1 ", *" simSlot "=>" 0 ", *" userID "=>" 1 ", *" status "=>" Pending ", *" sentDate "=>" 2018-10-20T00 : 00: 00 + 02: 00 ", *" geliefertDatum "=> null *" groupID "=>") V5LxqyBMEbQrl9 * J$5bb4c03e8a07b7.621923871 "*] *] * @throws Ausnahme Wenn beim Senden von Nachrichten ein Fehler auftritt. * /
Funktion Sende Nachrichten($messages, $option = USE_SPECIFIED, $-Geräte = [], $schedule = Null, $useRandomDevice = falsch)
{
    $url = SERVER . "/Services/send.php";
    $postData = [
        'Mitteilungen' => json_encode($messages),
        "Zeitpläne" => $schedule,
        'Schlüssel' => API-Schlüssel,
        "Geräte" => json_encode($-Geräte),
        'Möglichkeit' => $option,
        'UseRandomDevice' => $useRandomDevice
    ];
    Rückkehr Anfrage senden($url, $postData)["Mitteilungen"];
}

/ ** * @param int $listID Die ID der Kontaktliste, an die Sie diese Nachricht senden möchten. * @param string $message Die Nachricht, die Sie senden möchten. * @param int 1TP2 Option Setzen Sie diese Option auf USE_SPECIFIED, wenn Sie Geräte und SIMs verwenden möchten, die im Geräteargument angegeben sind. * Setzen Sie dies auf USE_ALL_DEVICES, wenn Sie alle verfügbaren Geräte und deren Standard-SIM zum Senden von Nachrichten verwenden möchten. * Setzen Sie dies auf USE_ALL_SIMS, wenn Sie alle verfügbaren Geräte und alle ihre SIM-Karten zum Senden von Nachrichten verwenden möchten. * @param array $devices Das Array mit der ID der Geräte, die Sie zum Senden der Nachricht verwenden möchten. * @param int $schedule Setzen Sie den Zeitstempel, wenn Sie diese Nachricht senden möchten. * * @return array Rückgabe Das Array, das Nachrichten enthält. * @throws Exception Wenn beim Senden von Nachrichten ein Fehler auftritt. * /
Funktion sendMessageToContactsList($listID, $message, $option = USE_SPECIFIED, $-Geräte = [], $schedule = Null)
{
    $url = SERVER . "/Services/send.php";
    $postData = [
        'Listid' => $listID,
        'Botschaft' => $message,
        "Zeitpläne" => $schedule,
        'Schlüssel' => API-Schlüssel,
        "Geräte" => json_encode($-Geräte),
        'Möglichkeit' => $option
    ];
    Rückkehr Anfrage senden($url, $postData)["Mitteilungen"];
}

/ ** * @param int $id Die ID einer Nachricht, die Sie abrufen möchten. * * @return array Das Array, das eine Nachricht enthält. * @throws Exception Wenn beim Abrufen einer Nachricht ein Fehler auftritt. * /
Funktion getMessageByID($id) {
    $url = SERVER . "/Services/read-messages.php";
    $postData = [
        'Schlüssel' => API-Schlüssel,
        'Ich würde' => $id
    ];
    Rückkehr Anfrage senden($url, $postData)["Mitteilungen"][0];
}

/ ** * @param string $groupID Die Gruppen-ID der Nachrichten, die Sie abrufen möchten. * * @return array Das Array, das Nachrichten enthält. * @throws Exception Wenn beim Abrufen von Nachrichten ein Fehler auftritt. * /
Funktion getMessagesByGroupID($groupID) {
    $url = SERVER . "/Services/read-messages.php";
    $postData = [
        'Schlüssel' => API-Schlüssel,
        'Gruppen-ID' => $groupID
    ];
    Rückkehr Anfrage senden($url, $postData)["Mitteilungen"];
}

/ ** * @param string $status Der Status der Nachrichten, die Sie abrufen möchten. * @param int $startTimestamp Suche nach Nachrichten, die nach dieser Zeit gesendet oder empfangen wurden. * @param int $endTimestamp Suche nach Nachrichten, die vor diesem Zeitpunkt gesendet oder empfangen wurden. * * @return array Das Array, das Nachrichten enthält. * @throws Exception Wenn beim Abrufen von Nachrichten ein Fehler auftritt. * /
Funktion getMessagesByStatus($status, $startTimestamp, $endTimestamp)
{
    $url = SERVER . "/Services/read-messages.php";
    $postData = [
        'Schlüssel' => API-Schlüssel,
        'Status' => $status,
        'StartTimestamp' => $startTimestamp,
        'EndTimestamp' => $endTimestamp
    ];
    Rückkehr Anfrage senden($url, $postData)["Mitteilungen"];
}

/ ** * @param int $listID Die ID der Kontaktliste, in der Sie diesen Kontakt hinzufügen möchten. * @param string $number Die Handynummer des Kontakts. * @param string $name Der Name des Kontakts. * @param bool $resubscribe Setzen Sie diesen Wert auf true, wenn Sie diesen Kontakt erneut abonnieren möchten, falls er bereits vorhanden ist. * * @return array Das Array, das einen neu hinzugefügten Kontakt enthält. * @throws Ausnahme Wenn beim Hinzufügen eines neuen Kontakts ein Fehler auftritt. * /
Funktion Kontakt hinzufügen($listID, $number, $name = Null, $resubscribe = falsch)
{
    $url = SERVER . "/Services/manage-contacts.php";
    $postData = [
        'Schlüssel' => API-Schlüssel,
        'Listid' => $listID,
        'Nummer' => $number,
        'Name' => $name,
        'Erneut abonnieren' => $resubscribe
    ];
    Rückkehr Anfrage senden($url, $postData)["Kontakt"];
}

/ ** * @param int $listID Die ID der Kontaktliste, von der Sie diesen Kontakt abbestellen möchten. * @param string $number Die Handynummer des Kontakts. * * @return array Das Array, das den nicht abonnierten Kontakt enthält. * @throws Exception Wenn beim Setzen des Abonnements auf false ein Fehler auftritt. * /
Funktion abbestellenKontakt($listID, $number)
{
    $url = SERVER . "/Services/manage-contacts.php";
    $postData = [
        'Schlüssel' => API-Schlüssel,
        'Listid' => $listID,
        'Nummer' => $number,
        'Abmelden' => falsch
    ];
    Rückkehr Anfrage senden($url, $postData)["Kontakt"];
}

/ ** * @return string Die Anzahl der verbleibenden Nachrichtenguthaben. * @throws Ausnahme Wenn beim Abrufen von Nachrichtenguthaben ein Fehler auftritt. * /
Funktion getBalance()
{
    $url = SERVER . "/Services/send.php";
    $postData = [
        'Schlüssel' => API-Schlüssel,
    ];
    $credits = Anfrage senden($url, $postData)["Credits"];
    Rückkehr ist Null($credits) ? "Unbegrenzt" : $credits;
}

Funktion Anfrage senden($url, $postData)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, falsch);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, falsch);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    wenn (curl_errno($ch)) {
        werfen Neu Ausnahme(curl_error($ch));
    }
    curl_close($ch);
    wenn ($httpCode == 200) {
        $json = json_decode($response, falsch);
        wenn ($json == falsch) {
            wenn (leer($response)) {
                werfen Neu Ausnahme("Fehlende Daten auf Anfrage. Bitte geben Sie alle erforderlichen Informationen zum Senden von Nachrichten an.");
            } sonst {
                werfen Neu Ausnahme($response);
            }
        } sonst {
            wenn ($json["Erfolg"]) {
                Rückkehr $json["Datum"];
            } sonst {
                werfen Neu Ausnahme($json["Error"]["Botschaft"]);
            }
        }
    } sonst {
        werfen Neu Ausnahme("HTTP-Fehlercode: {$httpCode}");
    }
}

Einzelne Nachricht senden

Versuchen {
    // Eine Nachricht mit dem primären Gerät senden.
    $msg = sendSingleMessage("+911234567890", "Dies ist ein Test für eine einzelne Nachricht.");

    // Eine Nachricht mit der Geräte-ID 1 senden.
    $msg = sendSingleMessage("+911234567890", "Dies ist ein Test für eine einzelne Nachricht.", 1);
	
    // Senden Sie eine Nachricht über die SIM-Karte in Steckplatz 1 der Geräte-ID 1 (dargestellt als "1 | 0").
    // Der SIM-Steckplatz ist ein Index, daher ist der Index der ersten SIM-Karte 0 und der Index der zweiten SIM-Karte 1.
    // In diesem Beispiel steht 1 für die Geräte-ID und 0 für den SIM-Steckplatzindex.
    $msg = sendSingleMessage("+911234567890", "Dies ist ein Test für eine einzelne Nachricht.", "1|0");

    // Geplante Nachricht mit dem primären Gerät senden.
    $msg = sendSingleMessage("+911234567890", "Dies ist ein Test der Zeitplanfunktion.", Null, strtotime("+2 Minuten"));
    print_r($msg);

    Echo "Erfolgreich eine Nachricht gesendet.";
} Fang (Ausnahme $e) {
    Echo $e->getMessage();
}

Massenmeldungen senden

$messages = Array();

zum ($i = 1; $i <= 12; $i++) {
    array_push($messages,
        [
            "Nummer" => "+911234567890",
            "Botschaft" => "Dies ist ein Test # {$i} der PHP-Version. Testen der Funktionalität von Massennachrichten."
        ]);
}

Versuchen {
    // Nachrichten mit dem primären Gerät senden.
    Sende Nachrichten($messages);

    // Nachrichten mit Standard-SIM aller verfügbaren Geräte senden. Nachrichten werden auf alle Geräte aufgeteilt.
    Sende Nachrichten($messages, USE_ALL_DEVICES);
	
    // Nachrichten mit allen SIM-Karten aller verfügbaren Geräte senden. Nachrichten werden auf alle SIM-Karten aufgeteilt.
    Sende Nachrichten($messages, USE_ALL_SIMS);

    // Nachrichten nur mit angegebenen Geräten senden. Nachrichten werden zwischen den von Ihnen angegebenen Geräten oder SIM-Karten aufgeteilt.
    // Wenn Sie 12 Nachrichten mit diesem Code senden, werden 4 Nachrichten von der Geräte-ID 1 und 4 von der SIM-Karte in Steckplatz 1 von gesendet 
    // Geräte-ID 2 (dargestellt als "2 | 0") und verbleibende 4 von SIM in Steckplatz 2 von Geräte-ID 2 (dargestellt als "2 | 1").
    Sende Nachrichten($messages, USE_SPECIFIED, [1, "2|0", "2|1"]);
    
    // Nachrichten termingerecht mit dem primären Gerät senden.
    Sende Nachrichten($messages, Null, Null, strtotime("+2 Minuten"));
    
    // Eine Nachricht an Kontakte in der Kontaktliste mit der ID 1 senden.
    sendMessageToContactsList(1, "Prüfung", USE_SPECIFIED, 1);
    
    // Nachricht pünktlich an Kontakte in der Kontaktliste mit der ID 1 senden.
    $msgs = sendMessageToContactsList(1, "Prüfung", Null, Null, strtotime("+2 Minuten"));
    
    print_r($msgs);

    Echo "Erfolgreich gesendete Massennachrichten.";
} Fang (Ausnahme $e) {
    Echo $e->getMessage();
}

Erhalten Sie die verbleibenden Nachrichtenguthaben

Versuchen {
    $credits = getBalance();
    Echo "Verbleibende Nachrichten-Credits: {$credits}";
} Fang (Ausnahme $e) {
    Echo $e->getMessage();
}

Erhalten Sie Nachrichten und ihren aktuellen Status

Versuchen {
    // Eine Nachricht mit der ID abrufen.
    $msg = getMessageByID(1);
    print_r($msg);

    // Nachrichten mit der Gruppen-ID abrufen.
    $msgs = getMessagesByGroupID(') * V5LxqyBMEbQrl9 J$5bb4c03e8a07b7.62193871');
    print_r($msgs);
    
    // Nachrichten erhalten, die in den letzten 24 Stunden empfangen wurden.
    $msgs = getMessagesByStatus("Empfangen", Zeit() - 86400);
    print_r($msgs);
} Fang (Ausnahme $e) {
    Echo $e->getMessage();
}

Kontakte verwalten

Versuchen {
    // Fügen Sie einen neuen Kontakt zur Kontaktliste 1 hinzu oder abonnieren Sie den Kontakt erneut, falls er bereits vorhanden ist.
    $contact = Kontakt hinzufügen(1, "+911234567890", "Prüfung", falsch);
    print_r($contact);
    
    // Einen Kontakt mit der Handynummer abbestellen.
    $contact = abbestellenKontakt(1, "+911234567890");
    print_r($contact);
} Fang (Ausnahme $e) {
    Echo $e->getMessage();
}



C#-Integration

mit System;
mit System.Sammlungen.Generisch;
mit System.ich;
mit System.Netz;
mit System.Text;
mit System.Netz;
mit Gateway_Sample_Application.Eigenschaften;
mit Newtonsoft.jSON;
mit Newtonsoft.jSON.Linq;

Namespace SMS
{
    statisch Klasse API
    {
        Privat statisch schreibgeschützt Zeichenfolge Server = "Https://sms.sendapp.live"
        Privat statisch schreibgeschützt Zeichenfolge Schlüssel = 6e1bdb4ed91f3b83071dd5a520c9d226ea19245e;

        Öffentlichkeit Aufzählung Möglichkeit
        {
            USE_SPECIFIED = 0,
            USE_ALL_DEVICES = 1,
            USE_ALL_SIMS = 2
        }

        /// 
        /// Einzelne Nachricht an bestimmte Handynummer senden.
        /// 
        ///  Die Handynummer, an die Sie eine Nachricht senden möchten. 
        ///  Die Nachricht, die Sie senden möchten. 
        ///  Die ID eines Geräts, mit dem Sie diese Nachricht senden möchten. 
        ///  Stellen Sie den Zeitstempel ein, wenn Sie diese Nachricht senden möchten. 
        ///  Wenn beim Senden einer Nachricht ein Fehler auftritt. 
        ///  Das Wörterbuch mit Informationen zur Nachricht. 
        Öffentlichkeit statisch Wörterbuch<Zeichenfolge, Objekt> SendSingleMessage(Zeichenfolge Nummer, Zeichenfolge Botschaft, Zeichenfolge Gerät = "0", lange? Zeitplan = Null)
        {
            var Werte = Neu Wörterbuch<Zeichenfolge, Objekt>
            {
                { "Nummer", Nummer},
                { "Botschaft", Botschaft},
                { "Zeitplan", Zeitplan },
                { "Schlüssel", Schlüssel },
                { "Geräte", Gerät }
            };

            Rückkehr getMessages(Erhalten Antwort($"{Server} /services/send.php", Werte)["Mitteilungen"])[0];
        }

        /// 
        /// Mehrere Nachrichten an verschiedene Handynummern senden.
        /// 
        ///  Das Array mit Zahlen und Nachrichten. 
        ///  Setzen Sie dies auf USE_SPECIFIED, wenn Sie Geräte und SIMs verwenden möchten, die im Geräteargument angegeben sind.
        /// Setzen Sie dies auf USE_ALL_DEVICES, wenn Sie alle verfügbaren Geräte und deren Standard-SIM zum Senden von Nachrichten verwenden möchten.
        /// Setzen Sie dies auf USE_ALL_SIMS, wenn Sie alle verfügbaren Geräte und alle ihre SIM-Karten zum Senden von Nachrichten verwenden möchten. 
        ///  Das Array der ID der Geräte, die Sie zum Senden dieser Nachrichten verwenden möchten. 
        ///  Stellen Sie den Zeitstempel ein, wenn Sie diese Nachricht senden möchten. 
        ///  Setzen Sie es auf true, wenn Sie Nachrichten mit nur einem zufälligen Gerät von ausgewählten Geräten senden möchten. 
        ///  Wenn beim Senden von Nachrichten ein Fehler auftritt. 
        ///  Das Array mit Nachrichten. 
        Öffentlichkeit statisch Wörterbuch<Zeichenfolge, Objekt> [] Sende Nachrichten(aufführen<Wörterbuch<Zeichenfolge, Zeichenfolge>> Mitteilungen, Möglichkeit Optionen = Möglichkeit.USE_SPECIFIED, Zeichenfolge[] Geräte = Null, lange? Zeitplan = Null, Bool useRandomDevice = falsch)
        {
            var Werte = Neu Wörterbuch<Zeichenfolge, Objekt>
            {
                { "Mitteilungen", JsonConvert.SerializeObject(Mitteilungen)},
                { "Zeitplan", Zeitplan },
                { "Schlüssel", Schlüssel },
                { "Geräte", Geräte },
                { "Möglichkeit", (int) Optionen },
                { "UseRandomDevice", useRandomDevice }
            };

            Rückkehr getMessages(Erhalten Antwort($"{Server} /services/send.php", Werte)["Mitteilungen"]);
        }

        /// 
        /// Senden Sie eine Nachricht an Kontakte in der angegebenen Kontaktliste.
        /// 
        ///  Die ID der Kontaktliste, an die Sie diese Nachricht senden möchten. 
        ///  Die Nachricht, die Sie senden möchten. 
        ///  Setzen Sie dies auf USE_SPECIFIED, wenn Sie Geräte und SIMs verwenden möchten, die im Geräteargument angegeben sind.
        /// Setzen Sie dies auf USE_ALL_DEVICES, wenn Sie alle verfügbaren Geräte und deren Standard-SIM zum Senden von Nachrichten verwenden möchten.
        /// Setzen Sie dies auf USE_ALL_SIMS, wenn Sie alle verfügbaren Geräte und alle ihre SIM-Karten zum Senden von Nachrichten verwenden möchten. 
        ///  Das Array der ID der Geräte, die Sie zum Senden dieser Nachrichten verwenden möchten. 
        ///  Stellen Sie den Zeitstempel ein, wenn Sie diese Nachricht senden möchten. 
        ///  Wenn beim Senden von Nachrichten ein Fehler auftritt. 
        ///  Das Array mit Nachrichten. 
        Öffentlichkeit statisch Wörterbuch<Zeichenfolge, Objekt> [] SendMessageToContactsList(int listid, Zeichenfolge Botschaft, Möglichkeit Optionen = Möglichkeit.USE_SPECIFIED, Zeichenfolge[] Geräte = Null, lange? Zeitplan = Null)
        {
            var Werte = Neu Wörterbuch<Zeichenfolge, Objekt>
            {
                { "Listid", listid},
                { "Botschaft", Botschaft},
                { "Zeitplan", Zeitplan },
                { "Schlüssel", Schlüssel },
                { "Geräte", Geräte },
                { "Möglichkeit", (int) Optionen }
            };

            Rückkehr getMessages(Erhalten Antwort($"{Server} /services/send.php", Werte)["Mitteilungen"]);
        }

        /// 
        /// Eine Nachricht mit der ID abrufen.
        /// 
        ///  Die ID einer Nachricht, die Sie abrufen möchten. 
        ///  Wenn beim Abrufen einer Nachricht ein Fehler auftritt. 
        ///  Das Wörterbuch mit Informationen zur Nachricht. 
        Öffentlichkeit statisch Wörterbuch<Zeichenfolge, Objekt> GetMessageByID(int Ich würde)
        {
            var Werte = Neu Wörterbuch<Zeichenfolge, Objekt>
            {
                { "Schlüssel", Schlüssel },
                { "Ich würde", Ich würde }
            };

            Rückkehr getMessages(Erhalten Antwort($"{Server} /services/read-messages.php", Werte)["Mitteilungen"])[0];
        }

        /// 
        /// Nachrichten mit der Gruppen-ID abrufen.
        /// 
        ///  Die Gruppen-ID der Nachrichten, die Sie abrufen möchten. 
        ///  Wenn beim Abrufen von Nachrichten ein Fehler auftritt. 
        ///  Das Array mit Nachrichten. 
        Öffentlichkeit statisch Wörterbuch<Zeichenfolge, Objekt> [] GetMessagesByGroupID(Zeichenfolge Gruppen-ID)
        {
            var Werte = Neu Wörterbuch<Zeichenfolge, Objekt>
            {
                { "Schlüssel", Schlüssel },
                { "Gruppen-ID", Gruppen-ID }
            };

            Rückkehr getMessages(Erhalten Antwort($"{Server} /services/read-messages.php", Werte)["Mitteilungen"]);
        }

        /// 
        /// Nachrichten mit dem Status abrufen.
        /// 
        ///  Der Status der Nachrichten, die Sie abrufen möchten. 
        ///  Suchen Sie nach Nachrichten, die nach dieser Zeit gesendet oder empfangen wurden. 
        ///  Suchen Sie nach Nachrichten, die vor diesem Zeitpunkt gesendet oder empfangen wurden. 
        ///  Wenn beim Abrufen von Nachrichten ein Fehler auftritt. 
        ///  Das Array mit Nachrichten. 
        Öffentlichkeit statisch Wörterbuch<Zeichenfolge, Objekt> [] GetMessagesByStatus(Zeichenfolge Status, lange? startTimestamp = Null, lange? endTimestamp = Null)
        {
            var Werte = Neu Wörterbuch<Zeichenfolge, Objekt>
            {
                { "Schlüssel", Schlüssel },
                { "Status", Status },
                { "StartTimestamp", startTimestamp },
                { "EndTimestamp", endTimestamp }
            };

            Rückkehr getMessages(Erhalten Antwort($"{Server} /services/read-messages.php", Werte)["Mitteilungen"]);
        }
        
        /// 
        /// Neuen Kontakt zur Kontaktliste hinzufügen.
        /// 
        ///  Die ID der Kontaktliste, in der Sie diesen Kontakt hinzufügen möchten. 
        ///  Die Handynummer des Kontakts. 
        ///  Der Name des Kontakts. 
        ///  Setzen Sie es auf true, wenn Sie diesen Kontakt erneut abonnieren möchten, falls er bereits vorhanden ist. 
        ///  Ein Wörterbuch mit Details zu einem neu hinzugefügten Kontakt. 
        Öffentlichkeit statisch Wörterbuch<Zeichenfolge, Objekt> Kontakt hinzufügen(int listid, Zeichenfolge Nummer, Zeichenfolge Name = Null, Bool erneut abonnieren = falsch)
        {
            var Werte = Neu Wörterbuch<Zeichenfolge, Objekt>
            {
                {"Schlüssel", Schlüssel},
                {"Listid", listid},
                {"Nummer", Nummer},
                {"Name", Name},
                {"Erneut abonnieren", erneut abonnieren ? '1' : '0'},
            };
            Jobobjekt Jobobjekt = (Jobobjekt) Erhalten Antwort($"{Server} /services/manage-contacts.php", Werte)["Kontakt"];
            Rückkehr Jobobjekt.ToObject<Wörterbuch<Zeichenfolge, Objekt>> ();
        }
        
        /// 
        /// Einen Kontakt von der Kontaktliste abbestellen.
        /// 
        ///  Die ID der Kontaktliste, von der Sie diesen Kontakt abbestellen möchten. 
        ///  Die Handynummer des Kontakts. 
        ///  Ein Wörterbuch mit Details zum abgemeldeten Kontakt. 
        Öffentlichkeit statisch Wörterbuch<Zeichenfolge, Objekt> AbbestellenKontakt(int listid, Zeichenfolge Nummer)
        {
            var Werte = Neu Wörterbuch<Zeichenfolge, Objekt>
            {
                {"Schlüssel", Schlüssel},
                {"Listid", listid},
                {"Nummer", Nummer},
                {"Abmelden", '1'}
            };
            Jobobjekt Jobobjekt = (Jobobjekt)Erhalten Antwort($"{Server} /services/manage-contacts.php", Werte)["Kontakt"];
            Rückkehr Jobobjekt.ToObject<Wörterbuch<Zeichenfolge, Objekt>> ();
        }
        
        /// 
        /// Restliche Nachrichtenguthaben abrufen.
        /// 
        ///  Wenn beim Abrufen von Nachrichtenguthaben ein Fehler auftritt. 
        ///  Die Anzahl der verbleibenden Nachrichtenguthaben. 
        Öffentlichkeit statisch Zeichenfolge GetBalance()
        {
            var Werte = Neu Wörterbuch<Zeichenfolge, Objekt>
            {
                {"Schlüssel", Schlüssel}
            };
            JToken Credits = Erhalten Antwort($"{Server} /services/send.php", Werte)["Credits"];
            wenn (Credits.Art != JTokenType.Null)
            {
                Rückkehr Credits.ToString();
            }
            Rückkehr "Unbegrenzt";
        }

        Privat statisch Wörterbuch<Zeichenfolge, Objekt> [] getMessages(JToken messagesJToken)
        {
            JArray jArray = (JArray)messagesJToken;
            var Mitteilungen = Neu Wörterbuch<Zeichenfolge, Objekt> [jArray.Anzahl];
            zum (var Index = 0; Index < jArray.Anzahl; Index++)
            {
                Mitteilungen[Index] = jArray[Index].ToObject<Wörterbuch<Zeichenfolge, Objekt>> ();
            }
            Rückkehr Mitteilungen;
        }

        Privat statisch JToken Erhalten Antwort(Zeichenfolge URL, Wörterbuch<Zeichenfolge, Objekt> Post-Daten)
        {
            var Anfrage = (HttpWebRequest)WebRequest.Erstellen(URL);
            var Datastring = CreateDataString(Post-Daten);
            var Datum = Codierung.UTF8.GetBytes(Datastring);

            Anfrage.Methode = "POST";
            Anfrage.Inhaltstyp = "Anwendung / x-www-form-urlencoded";
            Anfrage.Inhaltslänge = Datum.Länge;
            ServicePointManager.Expect100Continue = falsch;
            ServicePointManager.Sicherheitsprotokoll = SecurityProtocolType.Tls12;
            mit (var Strom = Anfrage.GetRequestStream())
            {
                Strom.Schreiben(Datum, 0, Datum.Länge);
            }

            var Antwort = (HttpWebResponse)Anfrage.Erhalten Antwort();

            wenn (Antwort.Statuscode == HttpStatusCode.Ok)
            {
                mit (StreamReader StreamReader = Neu StreamReader(Antwort.GetResponseStream()))
                {
                    var jsonResponse = StreamReader.ReadToEnd();
                    Versuchen
                    {
                        Jobobjekt Jobobjekt = Jobobjekt.Analysieren(jsonResponse);
                        wenn ((Bool)Jobobjekt["Erfolg"])
                        {
                            Rückkehr Jobobjekt["Datum"];
                        }
                        werfen Neu Ausnahme(Jobobjekt["Error"]["Botschaft"].ToString());
                    }
                    Fang (JsonReaderException)
                    {
                        wenn (Zeichenfolge.IsNullOrEmpty(jsonResponse))
                        {
                            werfen Neu InvalidDataException("Fehlende Daten auf Anfrage. Bitte geben Sie alle erforderlichen Informationen zum Senden von Nachrichten an.");
                        }
                        werfen Neu Ausnahme(jsonResponse);
                    }
                }
            }

            werfen Neu WebException($"HTTP-Fehler: {(int) response.StatusCode} {response.StatusCode}");
        }

        Privat statisch Zeichenfolge CreateDataString(Wörterbuch<Zeichenfolge, Objekt> Datum)
        {
            StringBuilder Datastring = Neu StringBuilder();
            Bool zuerst = falsch;
            für jedes (var obj im Datum)
            {
                wenn (obj.Wert != Null)
                {
                    wenn (zuerst)
                    {
                        zuerst = falsch;
                    }
                    sonst
                    {
                        Datastring.Anhängen("&");
                    }
                    Datastring.Anhängen(HttpUtility.UrlEncode(obj.Schlüssel));
                    Datastring.Anhängen("=");
                    Datastring.Anhängen(obj.Wert ist Zeichenfolge[]
                        ? HttpUtility.UrlEncode(JsonConvert.SerializeObject(obj.Wert))
                        : HttpUtility.UrlEncode(obj.Wert.ToString()));
                }
            }
            Rückkehr Datastring.ToString();
        }
    }
}

Einzelne Nachricht senden

Versuchen
{
    // Eine Nachricht mit dem primären Gerät senden.
    SMS.API.SendSingleMessage("+911234567890", "Dies ist ein Test für eine einzelne Nachricht.");

    // Eine Nachricht mit der Geräte-ID 1 senden.
    Wörterbuch<Zeichenfolge, Objekt> Botschaft = SMS.API.SendSingleMessage("+911234567890", "Dies ist ein Test für eine einzelne Nachricht.", "1");
	
    // Senden Sie eine Nachricht über die SIM-Karte in Steckplatz 1 der Geräte-ID 1 (dargestellt als "1 | 0").
    // Der SIM-Steckplatz ist ein Index, daher ist der Index der ersten SIM-Karte 0 und der Index der zweiten SIM-Karte 1.
    // In diesem Beispiel steht 1 für die Geräte-ID und 0 für den SIM-Steckplatzindex.
    Wörterbuch<Zeichenfolge, Objekt> Botschaft = SMS.API.SendSingleMessage("+911234567890", "Dies ist ein Test für eine einzelne Nachricht.", "1|0");

    // Geplante Nachricht mit dem primären Gerät senden.
    lange Zeitstempel = (lange) Terminzeit.UtcNow.AddMinutes(2).Subtrahieren(Neu Terminzeit(1970, 1, 1)).Gesamtsekunden;
    Wörterbuch<Zeichenfolge, Objekt> Botschaft = SendSingleMessage(textBoxNumber.Text, textBoxMessage.Text, Null, Zeitstempel);
    
    Nachrichtenbox.Show("Erfolgreich eine Nachricht gesendet.");
}
Fang (Ausnahme Ausnahme)
{
    Nachrichtenbox.Show(Ausnahme.Botschaft, "! Error", MessageBoxButtons.Ok, MessageBoxIcon.Error);
}

Massenmeldungen senden

aufführen<Wörterbuch<Zeichenfolge, Zeichenfolge>> Mitteilungen = Neu aufführen<Wörterbuch<Zeichenfolge, Zeichenfolge>> ();
zum (int das = 1; das <= 12; das++)
{
    var Botschaft = Neu Wörterbuch<Zeichenfolge, Zeichenfolge>
    {
        { "Nummer", "+911234567890" },
        { "Botschaft", "Dies ist ein Test # {$i} der C#-Version. Testen der Funktionalität von Massennachrichten." }
    };
    Mitteilungen.Hinzufügen(Botschaft);
}

Versuchen
{
    // Nachrichten mit dem primären Gerät senden.
    SMS.API.Sende Nachrichten(Mitteilungen);

    // Nachrichten mit Standard-SIM aller verfügbaren Geräte senden. Nachrichten werden auf alle Geräte aufgeteilt.
    SMS.API.Sende Nachrichten(Mitteilungen, SMS.API.Möglichkeit.USE_ALL_DEVICES);
	
    // Nachrichten mit allen SIM-Karten aller verfügbaren Geräte senden. Nachrichten werden auf alle SIM-Karten aufgeteilt.
    SMS.API.Sende Nachrichten(Mitteilungen, SMS.API.Möglichkeit.USE_ALL_SIMS);

    // Nachrichten nur mit angegebenen Geräten senden. Nachrichten werden zwischen den von Ihnen angegebenen Geräten oder SIM-Karten aufgeteilt.
    // Wenn Sie 12 Nachrichten mit diesem Code senden, werden 4 Nachrichten von der Geräte-ID 1 und 4 von der SIM-Karte in Steckplatz 1 von gesendet 
    // Geräte-ID 2 (dargestellt als "2 | 0") und verbleibende 4 von SIM in Steckplatz 2 von Geräte-ID 2 (dargestellt als "2 | 1").
    SMS.API.Sende Nachrichten(Mitteilungen, SMS.API.Möglichkeit.USE_SPECIFIED, Neu [] {"1", "2|0", "2|1"});
    
    // Nachrichten termingerecht mit dem primären Gerät senden.
    lange Zeitstempel = (lange) Terminzeit.UtcNow.AddMinutes(2).Subtrahieren(Neu Terminzeit(1970, 1, 1)).Gesamtsekunden;
    Wörterbuch<Zeichenfolge, Objekt> [] Mitteilungen = SMS.API.Sende Nachrichten(Mitteilungen, Möglichkeit.USE_SPECIFIED, Null, Zeitstempel);
    
    // Eine Nachricht an Kontakte in der Kontaktliste mit der ID 1 senden.
    Wörterbuch<Zeichenfolge, Objekt> [] Mitteilungen = SMS.API.SendMessageToContactsList(1, "Prüfung", SMS.API.Möglichkeit.USE_SPECIFIED, Neu [] {"1"});

    // Nachricht pünktlich an Kontakte in der Kontaktliste mit der ID 1 senden.
    Wörterbuch<Zeichenfolge, Objekt> [] Mitteilungen = SMS.API.SendMessageToContactsList(1, Test #1, Möglichkeit.USE_SPECIFIED, Null, Zeitstempel);
    
    Nachrichtenbox.Show("Erfolg");
}
Fang (Ausnahme Ausnahme)
{
    Nachrichtenbox.Show(Ausnahme.Botschaft, "! Error", MessageBoxButtons.Ok, MessageBoxIcon.Error);
}

Erhalten Sie die verbleibenden Nachrichtenguthaben

Versuchen
{
    Zeichenfolge Credits = SMS.API.GetBalance();
    Nachrichtenbox.Show($"Verbleibende Nachrichten-Credits: {Credits}");
}
Fang (Ausnahme Ausnahme)
{
    Nachrichtenbox.Show(Ausnahme.Botschaft, "! Error", MessageBoxButtons.Ok, MessageBoxIcon.Error);
}

Erhalten Sie Nachrichten und ihren aktuellen Status

Versuchen 
{
    // Eine Nachricht mit der ID abrufen.
    Wörterbuch<Zeichenfolge, Objekt> Botschaft = SMS.API.GetMessageByID(1);

    // Nachrichten mit der Gruppen-ID abrufen.
    Wörterbuch<Zeichenfolge, Objekt> [] Mitteilungen = SMS.API.GetMessagesByGroupID() * V5LxqyBMEbQrl9 J$5bb4c03e8a07b7.62193871);
    
    // Nachrichten erhalten, die in den letzten 24 Stunden empfangen wurden.
    lange Zeitstempel = (lange) Terminzeit.UtcNow.AddHours(-24).Subtrahieren(Neu Terminzeit(1970, 1, 1)).Gesamtsekunden;
    GetMessagesByStatus("Empfangen", Zeitstempel);
}
Fang (Ausnahme Ausnahme)
{
    Nachrichtenbox.Show(Ausnahme.Botschaft, "! Error", MessageBoxButtons.Ok, MessageBoxIcon.Error);
}

Kontakte verwalten

Versuchen {
    // Fügen Sie einen neuen Kontakt zur Kontaktliste 1 hinzu oder abonnieren Sie den Kontakt erneut, falls er bereits vorhanden ist.
    Wörterbuch<Zeichenfolge, Objekt> Kontakt = SMS.API.Kontakt hinzufügen(1, "+911234567890", "Test C#", falsch);
    
    // Einen Kontakt mit der Handynummer abbestellen.
    Wörterbuch<Zeichenfolge, Objekt> Kontakt = AbbestellenKontakt(1, "+911234567890");
}
Fang (Ausnahme Ausnahme)
{
    Nachrichtenbox.Show(Ausnahme.Botschaft, "! Error", MessageBoxButtons.Ok, MessageBoxIcon.Error);
}
Wählen Sie Ihre Währung
EUR Euro
USD Vereinigte Staaten (US) Dollar