Wie man eine SMS in C/C++ plant

Der einfachste Weg, SMS aus C/C++ zu versenden, ist die Verwendung der integrierten HTTP/Rest-SMS-API von Ozeki SMS Gateway. Wenn Sie diese API verwenden, senden Sie SMS-Nachrichten, indem Sie eine HTTP-Post-Anfrage an das SMS-Gateway stellen. Die HTTP-Post-Anfrage enthält eine Nachricht im JSON-Format. Das SMS-Gateway sendet diese SMS an den Empfänger und gibt eine HTTP-200-OK-Antwort auf Ihre Anfrage zurück. (Abbildung 1)

wie man eine sms in ccpp plant
Abbildung 1 - Wie man eine SMS in C/C++ plant

C/C++-Code zum Senden einer geplanten SMS an ein Mobiltelefon

Das folgende C/C++-SMS-Codebeispiel zeigt, wie Sie SMS mit der HTTP-Rest-SMS-API von Ozeki SMS Gateway unter Verwendung der C++-Bibliothek Ozeki.Libs.Rest senden können. Diese Bibliothek wird Ihnen kostenlos zur Verfügung gestellt und Sie können sie in Ihren Projekten verwenden und nach Belieben modifizieren.

SendScheduledSms.cpp
#include 
#include 
#include "Ozeki.Libs.Rest.h"

using namespace std;

int main()
{
    //Funktion zur Erzeugung einer eindeutigen Kennung für jede Nachricht
    srand((unsigned)time(0));

    Configuration configuration;
    configuration.Username = "http_user";
    configuration.Password = "qwe123";
    configuration.ApiUrl = "http://127.0.0.1:9509/api";

    Message msg;
    msg.ToAddress = "+36201111111";
    msg.Text = "Hallo Welt!";
    msg.TimeToSend = localdatetime(2021, 6, 29, 10, 0, 0);

    MessageApi api(configuration);

    auto result = api.Send(msg);

    cout << result << endl;

    return 0;
}
	

Wie man das C/C++-SMS-Beispiel verwendet:

Dieses C/C++-SMS-Beispiel kann in jeder C- oder C++-Core-Anwendung verwendet werden. Um es zu verwenden, müssen Sie die Ozeki.Libs.Rest-DLL als Referenz zu Ihrem Projekt hinzufügen. Nachdem die Projektreferenz hinzugefügt wurde, müssen Sie die Direktive using Ozeki.Libs.Rest; in den Header-Bereich Ihres C/C++-Quellcodes einfügen. Dies ermöglicht Ihnen die Verwendung der Klassen, die von der Ozeki.Libs.Rest-Bibliothek bereitgestellt werden. Sie können die Message-Klasse verwenden, um die SMS zu erstellen. Sie können die MessageApi-Klasse verwenden, um die SMS an das SMS-Gateway zu senden. Das SMS-Gateway leitet Ihre Nachricht entweder über eine drahtlose Verbindung oder über das Internet an das Mobilfunknetz weiter.

Video 1 - Wie man das oben gezeigte Beispielprojekt herunterlädt und einrichtet (Video-Tutorial)

SendScheduledSms.cpp herunterladen

Der in diesem Artikel erklärte Quellcode kann kostenlos heruntergeladen, verwendet und modifiziert werden.
Download: SendScheduledSms.cpp.zip (2,97 MB)

Was befindet sich in der Datei SendScheduledSms.cpp?

Die Datei SendScheduledSms.cpp enthält die Ozeki.Libs.Rest-Bibliothek, die Ihnen alle notwendigen Werkzeuge zum Senden und Empfangen von SMS-Nachrichten bietet. Sie finden auch das SendScheduledSms-Projekt in der ZIP-Datei, das den Beispielcode enthält, der Ihnen zeigt, wie Sie eine geplante SMS senden können. Dieser Beispielcode ist unten aufgeführt. (Abbildung 2)

Beispielprojekt zum Senden geplanter SMS-Nachrichten mit C++
Abbildung 2 - Was befindet sich in SendScheduledSms.cpp.zip

Wie man eine geplante SMS aus C/C++ sendet (Einfache Anleitung)

Um eine geplante SMS aus C/C++ zu senden:

  1. HTTP-API-Benutzer installieren
  2. Visual Studio einrichten
  3. Die Datei SendScheduledSms.cpp.zip herunterladen
  4. Die ZIP-Datei aus dem Downloads-Ordner extrahieren
  5. Die Datei SendScheduledSms.sln in Visual Studio öffnen
  6. Die Ozeki.Libs.Rest-DLL als Referenz hinzufügen
  7. Die Datei bearbeiten, um eine SMS aus C/C++ zu planen
  8. Ozeki SMS Gateway starten
  9. SendScheduledSms.cpp in Visual Studio ausführen, um eine SMS aus C/C++ zu senden
  10. Die Protokolle überprüfen

Ozeki SMS Gateway installieren und einen HTTP-API-Benutzer erstellen

Um SMS aus C/C++ senden zu können, müssen Sie zunächst Ozeki SMS Gateway installieren. Das SMS-Gateway kann auf demselben Computer installiert werden, auf dem Sie Ihren C/C++-Code in Visual Studio entwickeln. Nach der Installation ist der nächste Schritt, Ozeki SMS Gateway mit dem Mobilfunknetz zu verbinden. Sie können eine Test-SMS aus der Ozeki-GUI senden, um zu überprüfen, ob Ihre Mobilfunknetzverbindung funktioniert. Der letzte Schritt zur Vorbereitung Ihrer Umgebung ist die Erstellung eines HTTP-SMS-API-Benutzerkontos. Erstellen Sie einen Benutzer mit dem Benutzernamen "http_user" und dem Passwort "qwe123", damit das Beispiel ohne Änderungen funktioniert.

Nachdem die Umgebung eingerichtet ist, können Sie Ihren C/C++-Code ausführen.

HTTP-API-URL zum Senden von SMS aus C/C++

Um SMS aus C/C++ zu senden, muss Ihre C/C++-Anwendung eine HTTP-Anfrage an das SMS-Gateway stellen. Die API-URL wird unten angezeigt. Beachten Sie, dass die IP-Adresse (127.0.0.1) durch die IP-Adresse Ihres SMS-Gateways ersetzt werden sollte. Wenn Ozeki SMS Gateway auf demselben Computer installiert ist, auf dem die C/C++-SMS-Anwendung läuft, kann dies 127.0.0.1 sein. Wenn es auf einem anderen Computer installiert ist, sollte es die IP-Adresse dieses Computers sein.

http://127.0.0.1:9509/api?action=rest
	

HTTP-Authentifizierung zum Senden von SMS aus C/C++

Um den C/C++-SMS-Client zu authentifizieren, müssen Sie den Benutzernamen und das Passwort in einer base64-kodierten Zeichenkette an den Server in einer HTTP-Anfrage senden. Das verwendete Format lautet: base64(Benutzername+":"+Passwort). In C++ können Sie den folgenden Code verwenden, um diese Kodierung durchzuführen:

string usernamePassword = username + ":" + password;
string usernamePasswordEncoded = base64::encode(usernamePassword);
return "Basic " + usernamePasswordEncoded;
	

Wenn Sie beispielsweise den Benutzernamen 'http_user' und das Passwort 'qwe123' kodieren, erhalten Sie die folgende base64-kodierte Zeichenkette: aHR0cF91c2VyOnF3ZTEyMw==. Zum Senden

HTTP-Anfrageheader zum Senden von SMS aus C/C++

Um die SMS-Nachrichten zu senden, müssen Sie die folgenden Zeilen als Header in die HTTP-Anfrage aufnehmen. Beachten Sie, dass wir einen Content-Type- und einen Authorization-Header einfügen.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

HTTP-Anfrage zum Senden von geplanten SMS aus C/C++

Um die SMS zu übermitteln, sendet Ihre C/C++-Anwendung eine HTTP-Anfrage ähnlich der untenstehenden. Beachten Sie, dass diese Anfrage einen HTTP-Header-Teil und einen HTTP-Body-Teil enthält. Der HTTP-Body ist eine JSON-kodierte Datenzeichenkette. Sie enthält die Empfängernummer und den Text der Nachricht.

POST /api?action=sendmsg HTTP/1.1
Content-Length: 320
Content-Type: application/json
Accept: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509

{
	"messages":	[
		{
			"create_date":	"2021-06-29T10:21:47",
			"message_id":	"gi0j9bk6-y7wv-35qq-tksz-nzgwbc2sxznq",
			"submit_delivery_requested":	true,
			"submit_report_requested":	true,
			"submit_view_requested":	true,
			"text":	"Hallo Welt!",
			"time_to_send":	"2021-06-29T10:30:00",
			"to_address":	"+36201111111",
			"valid_until":	"2021-07-06T10:21:47"
		}
	]
}
	

HTTP-Antwort, die vom C/C++-SMS-Beispiel empfangen wird

Sobald das SMS-Gateway diese Anfrage empfängt, wird es eine HTTP-Antwort generieren. Die HTTP-Antwort enthält einen Statuscode, der angibt, ob die SMS-Übermittlungsanfrage erfolgreich war oder nicht. Sie gibt auch eine JSON-kodierte Struktur zurück, die Ihnen nützliche Details über die Übermittlung der Nachricht liefert.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.123 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Tue, 29 Jun 2021 10:13:46 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "Nachrichten wurden für die Zustellung in die Warteschlange gestellt.",
	"data": {
	  "total_count": 1,
	  "success_count": 1,
	  "failed_count": 0,
	  "messages": [
	    {
	      "message_id": "gi0j9bk6-y7wv-35qq-tksz-nzgwbc2sxznq",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hallo Welt!",
	      "create_date": "2021-06-29 10:21:47",
	      "valid_until": "2021-07-06 10:21:47",
	      "time_to_send": "2021-06-29 10:30:00",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

C/C++-SMS-Beispiel: SendScheduledSms.sln

Der untenstehende Beispielcode ist Teil der Visual Studio-Lösung SendScheduledSms.sln. Eine Visual Studio-Lösung kann mehrere Projekte und mehrere Dateien enthalten. In dieser Lösung gibt es nur ein Projekt: SendScheduledSms.vcxproj, und eine Datei: SendScheduledSms.cpp.

Lösung zum Senden von geplanten SMS-Nachrichten mit C Plus Plus
Abbildung 3 - SendScheduledSms.sln

Wie man eine geplante SMS mit dem C++-Code sendet (Video-Tutorial)

Das folgende Video erklärt, wie man eine SMS mit einem C/C++-Code plant. Das Video beginnt mit dem Öffnen des Ozeki SMS Gateways, und durch das Abschließen aller Schritte haben Sie eine SMS-Nachricht, die im Postponed-Ordner auf das Senden wartet. Dieses 1:44 lange Video ist einfach zu verstehen und zeigt alle Schritte klar. Sie werden das Ozeki SMS Gateway-Dashboard verwenden, das Ihnen ermöglicht, die wichtigsten Funktionen mit einem einzigen Klick zu erreichen. Sie lernen, wie Sie das Ozeki SMS Gateway starten und wie Sie den Outbox-Ordner überprüfen. Wie Sie den Code starten und wie Sie die SMS-Sendezeit angeben.

Video 2 - Senden einer geplanten SMS mit dem obigen C++-Code (Video-Tutorial)

Zusammenfassung

Die Hauptfunktion dieses Artikels war zu erklären, wie man eine SMS in C/C++ mit dem HTTP-SMS-API-Benutzer des Ozeki SMS Gateways plant. Wenn Sie die Anleitung sorgfältig gelesen haben, sollte das Planen von SMS mit C/C++ sehr einfach sein. Informationen zum perfekten Zeitpunkt zu teilen, ist für die effektivste Arbeit unerlässlich, da Sie auf diese Weise den SMS-Verkehr niedrig halten und Ihre Kollegen erreichen können, wenn sie gerade bereit sind, Nachrichten zu lesen.

Stellen Sie sicher, dass Sie weitere Anleitungen auf der Ozeki-Webseite lesen, um mehr zu erfahren. Tauchen Sie in andere C/C++-Tutorials ein wie Wie man eine SMS in C/C++ empfängt und mehr.

Laden Sie jetzt das Ozeki SMS Gateway herunter und lassen Sie die Arbeit beginnen!

More information