Zum Hauptinhalt springen

Mit den SMS-APIs von Sendapp
Sie können SMS-Benachrichtigungen automatisieren
mit jeder Plattform

Entwickelt für kleine und mittlere Unternehmen,
die Kundenkommunikation zu revolutionieren.

Kostenlose Testversion

WebHook-Beispielskript

Erstellen Sie ein Skript mit folgendem Inhalt und geben Sie dessen URL als WebHook an.

definieren("API_KEY", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

versuchen {
    Wenn (isset($_SERVER["HTTP_X_SG_SIGNATURE"])) {
        $hash = base64_encode(hash_hmac('sha256', $_POST["Nachrichten"], API_KEY, WAHR));
        Wenn ($hash === $_SERVER["HTTP_X_SG_SIGNATURE"]) {
            $-Nachrichten = json_decode($_POST["Nachrichten"], WAHR);

            /** * Zum Beispiel :- * $messages = [ * 0 => [ * "ID" => "1", * "number" => "+911234567890", * "message" => "Dies ist eine Testnachricht.", * "deviceID" => "1", * "simSlot" => "0", * "userID" => "1", * "status" => "Empfangen", * "sentDate" => "2018-10-20T00:00:00+02:00", * "deliveredDate" => "2018-10-20T00:00:00+02:00" * "groupID" => null * ] * ] * * senDate steht für Datum und Uhrzeit des Nachrichtenempfangs auf dem Gerät. * deliveredDate steht für Datum und Uhrzeit des Nachrichtenempfangs beim Server. */

            für jeden ($-Nachrichten als $-Nachricht) {
                Wenn(Strtolower($-Nachricht["Nachricht"]) === "Hi") {
                    // Antworten Sie auf Nachrichten mithilfe der API oder führen Sie einige Befehle aus. Die Möglichkeiten sind unbegrenzt.
                }
            }
        } anders {
            http_Antwortcode(401);
            Fehlerprotokoll("Signatur stimmt nicht überein!");
        }
    } anders {
        http_Antwortcode(400);
        Fehlerprotokoll("Signatur nicht gefunden!");
    }
} fangen (Ausnahme $e) {
    Fehlerprotokoll($e->Nachricht abrufen());
}

PHP-Integration

Fügen Sie den folgenden Code in Ihre PHP-Datei ein, um mit dem Senden von Nachrichten zu beginnen.

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

definieren("USE_SPECIFIED", 0);
definieren("ALLE_GERÄTE_VERWENDEN", 1);
definieren("USE_ALL_SIMS", 2);

/** * @param string $number Die Mobiltelefonnummer, an die Sie die Nachricht senden möchten. * @param string $message Die Nachricht, die Sie senden möchten. * @param int|string $device Die ID eines Geräts, das Sie zum Senden dieser Nachricht verwenden möchten. * @param int $schedule Legen Sie den Zeitstempel fest, wenn Sie diese Nachricht senden möchten. * * @return array Gibt das Array mit Informationen zur Nachricht zurück. * @throws Exception Wenn beim Senden einer Nachricht ein Fehler auftritt. */
Funktion sendSingleMessage($-Nummer, $-Nachricht, $-Gerät = 0, $-Zeitplan = null)
{
    $url = SERVER . "/services/send.php";
    $postData = Array('Nummer' => $-Nummer, 'Nachricht' => $-Nachricht, 'Zeitplan' => $-Zeitplan, 'Schlüssel' => API_KEY, 'Geräte' => $-Gerät);
    zurückkehren Anfrage senden($url, $postData)["Nachrichten"][0];
}

/** * @param array $messages Das Array mit den Nummern und Nachrichten. * @param int $option Setzen Sie dies auf USE_SPECIFIED, wenn Sie die im Geräteargument angegebenen Geräte und SIMs verwenden möchten. * 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 deren SIMs zum Senden von Nachrichten verwenden möchten. * @param array $devices Das Array mit den IDs der Geräte, die Sie zum Senden dieser Nachrichten verwenden möchten. * @param int $schedule Setzen Sie es auf den Zeitstempel, wenn Sie diese Nachrichten senden möchten. * @param bool $useRandomDevice Setzen Sie es auf true, wenn Sie Nachrichten nur mit einem zufällig ausgewählten Gerät senden möchten. * * @return array Gibt das Array mit den Nachrichten zurück. * Zum Beispiel :- * [ * 0 => [ * "ID" => "1", * "number" => "+911234567890", * "message" => "Dies ist eine Testnachricht.", * "deviceID" => "1", * "simSlot" => "0", * "userID" => "1", * "status" => "Ausstehend", * "sentDate" => "2018-10-20T00:00:00+02:00", * "deliveredDate" => null * "groupID" => ")V5LxqyBMEbQrl9*J$5bb4c03e8a07b7.62193871" * ] * ] * @throws Exception Wenn beim Senden der Nachrichten ein Fehler auftritt. */
Funktion sendMessages($-Nachrichten, $option = USE_SPECIFIED, $-Geräte = [], $-Zeitplan = null, $useRandomDevice = FALSCH)
{
    $url = SERVER . "/services/send.php";
    $postData = [
        'Nachrichten' => json_encode($-Nachrichten),
        'Zeitplan' => $-Zeitplan,
        'Schlüssel' => API_KEY,
        'Geräte' => json_encode($-Geräte),
        'Option' => $option,
        'useRandomDevice' => $useRandomDevice
    ];
    zurückkehren Anfrage senden($url, $postData)["Nachrichten"];
}

/** * @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 $option Setzen Sie dies auf USE_SPECIFIED, wenn Sie die im Geräteargument angegebenen Geräte und SIMs verwenden möchten. * 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 deren SIMs zum Senden von Nachrichten verwenden möchten. * @param array $devices Das Array mit den IDs der Geräte, die Sie zum Senden der Nachricht verwenden möchten. * @param int $schedule Setzen Sie es auf den Zeitstempel, wenn Sie diese Nachricht senden möchten. * * @return array Gibt das Array mit den Nachrichten zurück. * @throws Exception Falls beim Senden der Nachrichten ein Fehler auftritt. */
Funktion sendMessageToContactsList($listID, $-Nachricht, $option = USE_SPECIFIED, $-Geräte = [], $-Zeitplan = null)
{
    $url = SERVER . "/services/send.php";
    $postData = [
        'Listen-ID' => $listID,
        'Nachricht' => $-Nachricht,
        'Zeitplan' => $-Zeitplan,
        'Schlüssel' => API_KEY,
        'Geräte' => json_encode($-Geräte),
        'Option' => $option
    ];
    zurückkehren Anfrage senden($url, $postData)["Nachrichten"];
}

/** * @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_KEY,
        'Ausweis' => $id
    ];
    zurückkehren Anfrage senden($url, $postData)["Nachrichten"][0];
}

/** * @param string $groupID Die Gruppen-ID der Nachrichten, die Sie abrufen möchten. * * @return array Das Array mit den Nachrichten. * @throws Exception Wenn beim Abrufen der Nachrichten ein Fehler auftritt. */
Funktion getMessagesByGroupID($Gruppen-ID) {
    $url = SERVER . "/services/read-messages.php";
    $postData = [
        'Schlüssel' => API_KEY,
        'Gruppen-ID' => $Gruppen-ID
    ];
    zurückkehren Anfrage senden($url, $postData)["Nachrichten"];
}

/** * @param string $status Der Status der Nachrichten, die Sie abrufen möchten. * @param int $startTimestamp Suche nach Nachrichten, die nach diesem Zeitpunkt gesendet oder empfangen wurden. * @param int $endTimestamp Suche nach Nachrichten, die vor diesem Zeitpunkt gesendet oder empfangen wurden. * * @return array Das Array mit den Nachrichten. * @throws Exception Falls beim Abrufen der Nachrichten ein Fehler auftritt. */
Funktion getMessagesByStatus($status, $startTimestamp, $endTimestamp)
{
    $url = SERVER . "/services/read-messages.php";
    $postData = [
        'Schlüssel' => API_KEY,
        'Status' => $status,
        'Startzeitstempel' => $startTimestamp,
        'Endzeitstempel' => $endTimestamp
    ];
    zurückkehren Anfrage senden($url, $postData)["Nachrichten"];
}

/** * @param int $listID Die ID der Kontaktliste, zu der Sie diesen Kontakt hinzufügen möchten. * @param string $number Die Mobiltelefonnummer des Kontakts. * @param string $name Der Name des Kontakts. * @param bool $resubscribe Setzen Sie es 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 Exception Wenn beim Hinzufügen eines neuen Kontakts ein Fehler auftritt. */
Funktion Kontakt hinzufügen($listID, $-Nummer, $name = null, $reabonnieren = FALSCH)
{
    $url = SERVER . "/services/manage-contacts.php";
    $postData = [
        'Schlüssel' => API_KEY,
        'Listen-ID' => $listID,
        'Nummer' => $-Nummer,
        'Name' => $name,
        „erneut abonnieren“ => $reabonnieren
    ];
    zurückkehren Anfrage senden($url, $postData)["Kontakt"];
}

/** * @param int $listID Die ID der Kontaktliste, aus der Sie diesen Kontakt abbestellen möchten. * @param string $number Die Mobiltelefonnummer des Kontakts. * * @return array Das Array, das den abgemeldeten Kontakt enthält. * @throws Exception Wenn beim Festlegen des Abonnements auf „false“ ein Fehler auftritt. */
Funktion AbmeldenKontakt($listID, $-Nummer)
{
    $url = SERVER . "/services/manage-contacts.php";
    $postData = [
        'Schlüssel' => API_KEY,
        'Listen-ID' => $listID,
        'Nummer' => $-Nummer,
        'abbestellen' => WAHR
    ];
    zurückkehren Anfrage senden($url, $postData)["Kontakt"];
}

/** * @return string Die Menge der verbleibenden Nachrichtenguthaben. * @throws Exception Wenn beim Abrufen der Nachrichtenguthaben ein Fehler auftritt. */
Funktion getBalance()
{
    $url = SERVER . "/services/send.php";
    $postData = [
        'Schlüssel' => API_KEY,
    ];
    $credits = Anfrage senden($url, $postData)["Credits"];
    zurückkehren is_null($credits) ? "Unbegrenzt" : $credits;
}

Funktion Anfrage senden($url, $postData)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, WAHR);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, WAHR);
    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_fehler($ch));
    }
    curl_close($ch);
    Wenn ($httpCode == 200) {
        $json = json_decode($response, WAHR);
        Wenn ($json == FALSCH) {
            Wenn (leer($response)) {
                werfen neu Ausnahme(„In der Anfrage fehlen Daten. Bitte geben Sie alle erforderlichen Informationen an, um Nachrichten zu senden.“);
            } anders {
                werfen neu Ausnahme($response);
            }
        } anders {
            Wenn ($json["Erfolg"]) {
                zurückkehren $json["Datum"];
            } anders {
                werfen neu Ausnahme($json["Fehler"]["Nachricht"]);
            }
        }
    } anders {
        werfen neu Ausnahme("HTTP-Fehlercode: {$httpCode}");
    }
}

Einzelne Nachricht senden

versuchen {
    // Senden Sie eine Nachricht über das primäre Gerät.
    $msg = sendSingleMessage("+911234567890", „Dies ist ein Test einer einzelnen Nachricht.“);

    // Senden Sie eine Nachricht mit der Geräte-ID 1.
    $msg = sendSingleMessage("+911234567890", „Dies ist ein Test einer einzelnen Nachricht.“, 1);

    // Senden Sie eine Nachricht mit der SIM-Karte in Steckplatz 1 der Geräte-ID 1 (dargestellt als „1|0“).
    // SIM-Steckplatz ist ein Index, also ist der Index der ersten SIM 0 und der Index der zweiten SIM 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 einer einzelnen Nachricht.“, "1|0");

    // Geplante Nachricht über das primäre Gerät senden.
    $msg = sendSingleMessage("+911234567890", „Dies ist ein Test der Zeitplanfunktion.“, null, strtotime("+2 Minuten"));
    print_r($msg);

    Echo "Nachricht erfolgreich gesendet.";
} fangen (Ausnahme $e) {
    echo $e->Nachricht abrufen();
}

Massennachrichten senden

$-Nachrichten = Array();

für ($i = 1; $i <= 12; $i++) {
    array_push($-Nachrichten,
        [
            "Nummer" => "+911234567890",
            "Nachricht" => „Dies ist ein Test der PHP-Version #{$i}. Test der Massennachrichtenfunktion.“
        ]);
}

versuchen {
    // Senden Sie Nachrichten über das primäre Gerät.
    sendMessages($-Nachrichten);

    // Senden Sie Nachrichten über die Standard-SIM aller verfügbaren Geräte. Die Nachrichten werden auf alle Geräte aufgeteilt.
    sendMessages($-Nachrichten, ALLE_GERÄTE_VERWENDEN);

    // Senden Sie Nachrichten über alle SIM-Karten aller verfügbaren Geräte. Die Nachrichten werden auf alle SIM-Karten aufgeteilt.
    sendMessages($-Nachrichten, ALLE SIMS VERWENDEN);

    // Senden Sie Nachrichten nur über angegebene Geräte. Die Nachrichten werden zwischen den angegebenen Geräten oder SIM-Karten aufgeteilt.
    // Wenn Sie 12 Nachrichten mit diesem Code senden, werden 4 Nachrichten von der Geräte-ID 1 gesendet, die anderen 4 von der SIM-Karte in Steckplatz 1 von 
    // Geräte-ID 2 (dargestellt als „2|0“) und die restlichen 4 von SIM in Steckplatz 2 der Geräte-ID 2 (dargestellt als „2|1“).
    sendMessages($-Nachrichten, USE_SPECIFIED, [1, "2|0", "2|1"]);

    // Senden Sie Nachrichten planmäßig über das primäre Gerät.
    sendMessages($-Nachrichten, null, null, strtotime("+2 Minuten"));

    // Senden Sie eine Nachricht an Kontakte in der Kontaktliste mit der ID 1.
    sendMessageToContactsList(1, "Prüfen", USE_SPECIFIED, 1);

    // Senden Sie planmäßig eine Nachricht an Kontakte in der Kontaktliste mit der ID 1.
    $msgs = sendMessageToContactsList(1, "Prüfen", null, null, strtotime("+2 Minuten"));

    print_r($msgs);

    Echo „Massennachrichten erfolgreich gesendet.“;
} fangen (Ausnahme $e) {
    echo $e->Nachricht abrufen();
}

Verbleibendes Nachrichtenguthaben abrufen

versuchen {
    $credits = getBalance();
    Echo "Verbleibende Nachrichtenguthaben: {$credits}";
} fangen (Ausnahme $e) {
    echo $e->Nachricht abrufen();
}

Abrufen von Nachrichten und deren aktuellem Status

versuchen {
    // Holen Sie sich eine Nachricht mithilfe der ID.
    $msg = getMessageByID(1);
    print_r($msg);

    // Nachrichten mithilfe der Gruppen-ID abrufen.
    $msgs = getMessagesByGroupID(')V5LxqyBMEbQrl9*J$5bb4c03e8a07b7.62193871');
    print_r($msgs);

    // Nachrichten abrufen, die in den letzten 24 Stunden empfangen wurden.
    $msgs = getMessagesByStatus("Erhalten", Zeit() - 86400);
    print_r($msgs);
} fangen (Ausnahme $e) {
    echo $e->Nachricht abrufen();
}

Kontakte verwalten

versuchen {
    // Fügen Sie der Kontaktliste 1 einen neuen Kontakt hinzu oder abonnieren Sie den Kontakt erneut, wenn er bereits vorhanden ist.
    $Kontakt = Kontakt hinzufügen(1, "+911234567890", "Prüfen", WAHR);
    print_r($Kontakt);

    // Einen Kontakt über die Mobiltelefonnummer abbestellen.
    $Kontakt = AbmeldenKontakt(1, "+911234567890");
    print_r($Kontakt);
} fangen (Ausnahme $e) {
    echo $e->Nachricht abrufen();
}



C#-Integration

mit System;
mit System.Sammlungen.Generisch;
mit System.ICH;
mit System.Netto;
mit System.Text;
mit System.Web;
mit Gateway_Beispielanwendung.Eigenschaften;
mit Newtonsoft.Json;
mit Newtonsoft.Json.Linq;

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

        öffentlich Aufzählung Option
        {
            USE_SPECIFIED = 0,
            ALLE_GERÄTE_VERWENDEN = 1,
            ALLE SIMS VERWENDEN = 2
        }

        ///
        /// Senden Sie eine einzelne Nachricht an eine bestimmte Mobiltelefonnummer.
        ///
        /// Die Mobiltelefonnummer, an die Sie die Nachricht senden möchten.
        /// Die Nachricht, die Sie senden möchten.
        /// Die ID eines Geräts, das Sie zum Senden dieser Nachricht verwenden möchten.
        /// Legen Sie den Zeitstempel fest, wenn Sie diese Nachricht senden möchten.
        /// Wenn beim Senden einer Nachricht ein Fehler auftritt.
        /// Das Wörterbuch mit Informationen zur Nachricht.
        öffentlich statisch Wörterbuch<Schnur, Objekt> SendSingleMessage(Schnur Nummer, Schnur Nachricht, Schnur Gerät = "0", lang? Zeitplan = null)
        {
            var Werte = neu Wörterbuch<Schnur, Objekt>
            {
                { "Nummer", Nummer},
                { "Nachricht", Nachricht},
                { "Zeitplan", Zeitplan },
                { "Schlüssel", Schlüssel },
                { "Geräte", Gerät }
            };

            zurückkehren Nachrichten abrufen(GetResponse($"{Server}/services/send.php", Werte)["Nachrichten"])[0];
        }

        ///
        /// Senden Sie mehrere Nachrichten an verschiedene Mobiltelefonnummern.
        ///
        /// Das Array enthält Zahlen und Nachrichten.
        /// Setzen Sie dies auf USE_SPECIFIED, wenn Sie die im Geräteargument angegebenen Geräte und SIMs verwenden möchten.
        /// 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 SIMs zum Senden von Nachrichten verwenden möchten.
        /// Das Array der IDs der Geräte, die Sie zum Senden dieser Nachrichten verwenden möchten.
        /// Legen Sie den Zeitstempel fest, wenn Sie diese Nachricht senden möchten.
        /// Setzen Sie es auf „true“, wenn Sie Nachrichten nur mit einem zufällig ausgewählten Gerät senden möchten.
        /// Wenn beim Senden von Nachrichten ein Fehler auftritt.
        /// Das Array, das die Nachrichten enthält.
        öffentlich statisch Wörterbuch<Schnur, Objekt>[] SendMessages(Liste<Wörterbuch<Schnur, Schnur>> Nachrichten, Option Option = Option.USE_SPECIFIED, Schnur[] Geräte = null, lang? Zeitplan = null, bool useRandomDevice = FALSCH)
        {
            var Werte = neu Wörterbuch<Schnur, Objekt>
            {
                { "Nachrichten", JsonConvert.SerializeObject(Nachrichten)},
                { "Zeitplan", Zeitplan },
                { "Schlüssel", Schlüssel },
                { "Geräte", Geräte },
                { "Option", (int) Option },
                { "useRandomDevice", useRandomDevice }
            };

            zurückkehren Nachrichten abrufen(GetResponse($"{Server}/services/send.php", Werte)["Nachrichten"]);
        }

        ///
        /// 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 die im Geräteargument angegebenen Geräte und SIMs verwenden möchten.
        /// 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 SIMs zum Senden von Nachrichten verwenden möchten.
        /// Das Array der IDs der Geräte, die Sie zum Senden dieser Nachrichten verwenden möchten.
        /// Legen Sie den Zeitstempel fest, wenn Sie diese Nachricht senden möchten.
        /// Wenn beim Senden von Nachrichten ein Fehler auftritt.
        /// Das Array, das die Nachrichten enthält.
        öffentlich statisch Wörterbuch<Schnur, Objekt>[] SendMessageToContactsList(int Listen-ID, Schnur Nachricht, Option Option = Option.USE_SPECIFIED, Schnur[] Geräte = null, lang? Zeitplan = null)
        {
            var Werte = neu Wörterbuch<Schnur, Objekt>
            {
                { "Listen-ID", Listen-ID},
                { "Nachricht", Nachricht},
                { "Zeitplan", Zeitplan },
                { "Schlüssel", Schlüssel },
                { "Geräte", Geräte },
                { "Option", (int) Option }
            };

            zurückkehren Nachrichten abrufen(GetResponse($"{Server}/services/send.php", Werte)["Nachrichten"]);
        }

        ///
        /// Holen Sie sich eine Nachricht mithilfe der ID.
        ///
        /// Die ID einer Nachricht, die Sie abrufen möchten.
        /// Wenn beim Abrufen einer Nachricht ein Fehler auftritt.
        /// Das Wörterbuch mit Informationen zur Nachricht.
        öffentlich statisch Wörterbuch<Schnur, Objekt> GetMessageByID(int Ausweis)
        {
            var Werte = neu Wörterbuch<Schnur, Objekt>
            {
                { "Schlüssel", Schlüssel },
                { "Ausweis", Ausweis }
            };

            zurückkehren Nachrichten abrufen(GetResponse($"{Server}/services/read-messages.php", Werte)["Nachrichten"])[0];
        }

        ///
        /// Nachrichten mithilfe der Gruppen-ID abrufen.
        ///
        /// Die Gruppen-ID der Nachrichten, die Sie abrufen möchten.
        /// Wenn beim Abrufen von Nachrichten ein Fehler auftritt.
        /// Das Array, das die Nachrichten enthält.
        öffentlich statisch Wörterbuch<Schnur, Objekt>[] Nachrichten nach Gruppen-ID abrufen(Schnur Gruppen-ID)
        {
            var Werte = neu Wörterbuch<Schnur, Objekt>
            {
                { "Schlüssel", Schlüssel },
                { "Gruppen-ID", Gruppen-ID }
            };

            zurückkehren Nachrichten abrufen(GetResponse($"{Server}/services/read-messages.php", Werte)["Nachrichten"]);
        }

        ///
        /// Nachrichten mithilfe des 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, das die Nachrichten enthält.
        öffentlich statisch Wörterbuch<Schnur, Objekt>[] Nachrichten nach Status abrufen(Schnur Status, lang? Startzeitstempel = null, lang? Endzeitstempel = null)
        {
            var Werte = neu Wörterbuch<Schnur, Objekt>
            {
                { "Schlüssel", Schlüssel },
                { "Status", Status },
                { "Startzeitstempel", Startzeitstempel },
                { "Endzeitstempel", Endzeitstempel }
            };

            zurückkehren Nachrichten abrufen(GetResponse($"{Server}/services/read-messages.php", Werte)["Nachrichten"]);
        }

        ///
        /// Einen neuen Kontakt zur Kontaktliste hinzufügen.
        ///
        /// Die ID der Kontaktliste, zu der Sie diesen Kontakt hinzufügen möchten.
        /// Die Mobiltelefonnummer des Kontakts.
        /// Der Name des Kontakts.
        /// Setzen Sie es auf „true“, wenn Sie diesen Kontakt erneut abonnieren möchten, sofern er bereits vorhanden ist.
        /// Ein Wörterbuch mit Details zu einem neu hinzugefügten Kontakt.
        öffentlich statisch Wörterbuch<Schnur, Objekt> Kontakt hinzufügen(int Listen-ID, Schnur Nummer, Schnur Name = null, bool erneut abonnieren = FALSCH)
        {
            var Werte = neu Wörterbuch<Schnur, Objekt>
            {
                {"Schlüssel", Schlüssel},
                {"Listen-ID", Listen-ID},
                {"Nummer", Nummer},
                {"Name", Name},
                {"erneut abonnieren", erneut abonnieren ? '1' : '0'},
            };
            JObject jObject = (JObject) GetResponse($"{Server}/services/manage-contacts.php", Werte)["Kontakt"];
            zurückkehren jObject.ToObject<Wörterbuch<Schnur, Objekt>>();
        }

        ///
        /// Einen Kontakt aus der Kontaktliste abmelden.
        ///
        /// Die ID der Kontaktliste, aus der Sie diesen Kontakt abbestellen möchten.
        /// Die Mobiltelefonnummer des Kontakts.
        /// Ein Wörterbuch mit Details zum abgemeldeten Kontakt.
        öffentlich statisch Wörterbuch<Schnur, Objekt> AbmeldenKontakt(int Listen-ID, Schnur Nummer)
        {
            var Werte = neu Wörterbuch<Schnur, Objekt>
            {
                {"Schlüssel", Schlüssel},
                {"Listen-ID", Listen-ID},
                {"Nummer", Nummer},
                {"abbestellen", '1'}
            };
            JObject jObject = (JObject)GetResponse($"{Server}/services/manage-contacts.php", Werte)["Kontakt"];
            zurückkehren jObject.ToObject<Wörterbuch<Schnur, Objekt>>();
        }

        ///
        /// Verbleibendes Nachrichtenguthaben abrufen.
        ///
        /// Wenn beim Abrufen des Nachrichtenguthabens ein Fehler auftritt.
        /// Die Menge des verbleibenden Nachrichtenguthabens.
        öffentlich statisch Schnur GetBalance()
        {
            var Werte = neu Wörterbuch<Schnur, Objekt>
            {
                {"Schlüssel", Schlüssel}
            };
            JToken Credits = GetResponse($"{Server}/services/send.php", Werte)["Credits"];
            Wenn (Credits.Typ != JTokenType.Nichts)
            {
                zurückkehren Credits.ToString();
            }
            zurückkehren "Unbegrenzt";
        }

        Privat statisch Wörterbuch<Schnur, Objekt>[] Nachrichten abrufen(JToken NachrichtenJToken)
        {
            JArray jArray = (JArray)NachrichtenJToken;
            var Nachrichten = neu Wörterbuch<Schnur, Objekt>[jArray.Zählen];
            für (var Index = 0; Index < jArray.Zählen; Index++)
            {
                Nachrichten[Index] = jArray[Index].ToObject<Wörterbuch<Schnur, Objekt>>();
            }
            zurückkehren Nachrichten;
        }

        Privat statisch JToken GetResponse(Schnur URL, Wörterbuch<Schnur, Objekt> postData)
        {
            var Anfrage = (HttpWebRequest)WebRequest.Erstellen(URL);
            var Datenstring = CreateDataString(postData);
            var Datum = Codierung.UTF8.GetBytes(Datenstring);

            Anfrage.Verfahren = "POST";
            Anfrage.Inhaltstyp = "Anwendung/x-www-form-urlencoded";
            Anfrage.Inhaltslänge = Datum.Länge;
            ServicePointManager.Erwarte 100 Weiter = WAHR;
            ServicePointManager.Sicherheitsprotokoll = Sicherheitsprotokolltyp.Tls12;
            mit (var Strom = Anfrage.GetRequestStream())
            {
                Strom.Schreiben(Datum, 0, Datum.Länge);
            }

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

            Wenn (Antwort.Statuscode == HttpStatusCode.OK)
            {
                mit (StreamReader streamReader = neu StreamReader(Antwort.GetResponseStream()))
                {
                    var jsonAntwort = streamReader.ReadToEnd();
                    versuchen
                    {
                        JObject jObject = JObject.Parse(jsonAntwort);
                        Wenn ((bool)jObject["Erfolg"])
                        {
                            zurückkehren jObject["Datum"];
                        }
                        werfen neu Ausnahme(jObject["Fehler"]["Nachricht"].ToString());
                    }
                    fangen (JsonReaderException)
                    {
                        Wenn (Schnur.IsNullOrEmpty(jsonAntwort))
                        {
                            werfen neu InvalidDataException(„In der Anfrage fehlen Daten. Bitte geben Sie alle erforderlichen Informationen an, um Nachrichten zu senden.“);
                        }
                        werfen neu Ausnahme(jsonAntwort);
                    }
                }
            }

            werfen neu WebException($„HTTP-Fehler: {(int)response.StatusCode} {response.StatusCode}“);
        }

        Privat statisch Schnur CreateDataString(Wörterbuch<Schnur, Objekt> Datum)
        {
            StringBuilder Datenstring = neu StringBuilder();
            bool Erste = WAHR;
            für jeden (var obj In Datum)
            {
                Wenn (obj.Wert != null)
                {
                    Wenn (Erste)
                    {
                        Erste = FALSCH;
                    }
                    anders
                    {
                        Datenstring.Anhängen("&");
                    }
                    Datenstring.Anhängen(HttpUtility.UrlEncode(obj.Schlüssel));
                    Datenstring.Anhängen("=");
                    Datenstring.Anhängen(obj.Wert Ist Schnur[]
                        ? HttpUtility.UrlEncode(JsonConvert.SerializeObject(obj.Wert))
                        : HttpUtility.UrlEncode(obj.Wert.ToString()));
                }
            }
            zurückkehren Datenstring.ToString();
        }
    }
}

Einzelne Nachricht senden

versuchen
{
    // Senden Sie eine Nachricht über das primäre Gerät.
    SMS.API.SendSingleMessage("+911234567890", „Dies ist ein Test einer einzelnen Nachricht.“);

    // Senden Sie eine Nachricht mit der Geräte-ID 1.
    Wörterbuch<Schnur, Objekt> Nachricht = SMS.API.SendSingleMessage("+911234567890", „Dies ist ein Test einer einzelnen Nachricht.“, "1");

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

    // Geplante Nachricht über das primäre Gerät senden.
    lang Zeitstempel = (lang) Datum/Uhrzeit.UTCJetzt.Minuten hinzufügen(2).Subtrahieren(neu Datum/Uhrzeit(1970, 1, 1)).Gesamtsekunden;
    Wörterbuch<Schnur, Objekt> Nachricht = SendSingleMessage(Textfeldnummer.Text, Textfeldnachricht.Text, null, Zeitstempel);

    MessageBox.Zeigen("Nachricht erfolgreich gesendet.");
}
fangen (Ausnahme Ausnahme)
{
    MessageBox.Zeigen(Ausnahme.Nachricht, "!Fehler", MessageBoxButtons.OK, MessageBoxIcon.Fehler);
}

Massennachrichten senden

Liste<Wörterbuch<Schnur, Schnur>> Nachrichten = neu Liste<Wörterbuch<Schnur, Schnur>>();
für (int Die = 1; Die <= 12; Die++)
{
    var Nachricht = neu Wörterbuch<Schnur, Schnur>
    {
        { "Nummer", "+911234567890" },
        { "Nachricht", „Dies ist ein Test von #{$i} der C#-Version. Test der Massennachrichtenfunktion.“ }
    };
    Nachrichten.Hinzufügen(Nachricht);
}

versuchen
{
    // Senden Sie Nachrichten über das primäre Gerät.
    SMS.API.SendMessages(Nachrichten);

    // Senden Sie Nachrichten über die Standard-SIM aller verfügbaren Geräte. Die Nachrichten werden auf alle Geräte aufgeteilt.
    SMS.API.SendMessages(Nachrichten, SMS.API.Option.ALLE_GERÄTE_VERWENDEN);

    // Senden Sie Nachrichten über alle SIM-Karten aller verfügbaren Geräte. Die Nachrichten werden auf alle SIM-Karten aufgeteilt.
    SMS.API.SendMessages(Nachrichten, SMS.API.Option.ALLE SIMS VERWENDEN);

    // Senden Sie Nachrichten nur über angegebene Geräte. Die Nachrichten werden zwischen den angegebenen Geräten oder SIM-Karten aufgeteilt.
    // Wenn Sie 12 Nachrichten mit diesem Code senden, werden 4 Nachrichten von der Geräte-ID 1 gesendet, die anderen 4 von der SIM-Karte in Steckplatz 1 von 
    // Geräte-ID 2 (dargestellt als „2|0“) und die restlichen 4 von SIM in Steckplatz 2 der Geräte-ID 2 (dargestellt als „2|1“).
    SMS.API.SendMessages(Nachrichten, SMS.API.Option.USE_SPECIFIED, neu [] {"1", "2|0", "2|1"});

    // Senden Sie Nachrichten planmäßig über das primäre Gerät.
    lang Zeitstempel = (lang) Datum/Uhrzeit.UTCJetzt.Minuten hinzufügen(2).Subtrahieren(neu Datum/Uhrzeit(1970, 1, 1)).Gesamtsekunden;
    Wörterbuch<Schnur, Objekt>[] Nachrichten = SMS.API.SendMessages(Nachrichten, Option.USE_SPECIFIED, null, Zeitstempel);

    // Senden Sie eine Nachricht an Kontakte in der Kontaktliste mit der ID 1.
    Wörterbuch<Schnur, Objekt>[] Nachrichten = SMS.API.SendMessageToContactsList(1, "Prüfen", SMS.API.Option.USE_SPECIFIED, neu [] {"1"});

    // Senden Sie planmäßig eine Nachricht an Kontakte in der Kontaktliste mit der ID 1.
    Wörterbuch<Schnur, Objekt>[] Nachrichten = SMS.API.SendMessageToContactsList(1, "Test #1", Option.USE_SPECIFIED, null, Zeitstempel);

    MessageBox.Zeigen("Erfolg");
}
fangen (Ausnahme Ausnahme)
{
    MessageBox.Zeigen(Ausnahme.Nachricht, "!Fehler", MessageBoxButtons.OK, MessageBoxIcon.Fehler);
}

Verbleibendes Nachrichtenguthaben abrufen

versuchen
{
    Schnur Credits = SMS.API.GetBalance();
    MessageBox.Zeigen($„Verbleibende Nachrichtenguthaben: {credits}“);
}
fangen (Ausnahme Ausnahme)
{
    MessageBox.Zeigen(Ausnahme.Nachricht, "!Fehler", MessageBoxButtons.OK, MessageBoxIcon.Fehler);
}

Abrufen von Nachrichten und deren aktuellem Status

versuchen
{
    // Holen Sie sich eine Nachricht mithilfe der ID.
    Wörterbuch<Schnur, Objekt> Nachricht = SMS.API.GetMessageByID(1);

    // Nachrichten mithilfe der Gruppen-ID abrufen.
    Wörterbuch<Schnur, Objekt>[] Nachrichten = SMS.API.Nachrichten nach Gruppen-ID abrufen(")V5LxqyBMEbQrl9*J$5bb4c03e8a07b7.62193871");

    // Nachrichten abrufen, die in den letzten 24 Stunden empfangen wurden.
    lang Zeitstempel = (lang) Datum/Uhrzeit.UTCJetzt.Stunden hinzufügen(-24).Subtrahieren(neu Datum/Uhrzeit(1970, 1, 1)).Gesamtsekunden;
    Nachrichten nach Status abrufen("Erhalten", Zeitstempel);
}
fangen (Ausnahme Ausnahme)
{
    MessageBox.Zeigen(Ausnahme.Nachricht, "!Fehler", MessageBoxButtons.OK, MessageBoxIcon.Fehler);
}

Kontakte verwalten

versuchen {
    // Fügen Sie der Kontaktliste 1 einen neuen Kontakt hinzu oder abonnieren Sie den Kontakt erneut, wenn er bereits vorhanden ist.
    Wörterbuch<Schnur, Objekt> Kontakt = SMS.API.Kontakt hinzufügen(1, "+911234567890", "Test C#", WAHR);

    // Einen Kontakt über die Mobiltelefonnummer abbestellen.
    Wörterbuch<Schnur, Objekt> Kontakt = AbmeldenKontakt(1, "+911234567890");
}
fangen (Ausnahme Ausnahme)
{
    MessageBox.Zeigen(Ausnahme.Nachricht, "!Fehler", MessageBoxButtons.OK, MessageBoxIcon.Fehler);
}