Hogyan küldjünk több SMS-t C/C++-ból

A legegyszerűbb módja az SMS küldésének C/C++-ból az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, SMS üzeneteket küldhetsz HTTP POST kérések kiadásával az SMS gateway felé. A HTTP POST kérés egy JSON formátumban formázott üzenetet fog tartalmazni. Az SMS gateway továbbítja ezt az SMS-t a címzett telefonszámára, és egy HTTP 200 OK választ küld vissza a kérésedre.

hogyan küldjünk több sms-t ccpp-ből
1. ábra - Hogyan küldjünk több SMS-t C/C++-ból

C/C++ kód több SMS mobilra küldéséhez

Az alábbi C/C++ SMS kódminta bemutatja, hogyan küldhetsz SMS-t az Ozeki SMS Gateway http rest sms api-jával a C/C++ Ozeki.Libs.Rest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető számodra, és bármely projektben felhasználhatod és módosíthatod.

SendMultipleSms.cpp
#include <iostream>
#include <string>
#include "Ozeki.Libs.Rest.h"

using namespace std;

int main()
{

    //Függvény egyedi azonosító generálásához minden üzenethez
    srand((unsigned)time(0));
    
	Configuration configuration;
	configuration.Username = "http_user";
	configuration.Password = "qwe123";
	configuration.ApiUrl = "http://127.0.0.1:9509/api";

	Message msg1;
	msg1.ToAddress = "+36201111111";
	msg1.Text = "Hello world 1";

	Message msg2;
	msg2.ToAddress = "+36202222222";
	msg2.Text = "Hello world 2";

	Message msg3;
	msg3.ToAddress = "+36203333333";
	msg3.Text = "Hello world 3";

	MessageApi api(configuration);

	auto result = api.Send({ msg1, msg2, msg3 });

	cout << result << endl;

	return 0;
}
	

A C/C++ SMS példa használata:

Ez a C++ SMS példa bármely C/C++ alkalmazásban használható. A használatához hozzá kell adnod az Ozeki.Libs.Rest dll-t referenciaként a projektedhez. A projekt referenciájának hozzáadása után a using Ozeki.Libs.Rest; direktívát kell elhelyezned a C/C++ forráskódod fejléc részébe. Ez lehetővé teszi az Ozeki.Libs.Rest könyvtár által nyújtott osztályok használatát. A Message osztály segítségével hozhatod létre az SMS-t. A MessageApi osztály segítségével elküldheted az SMS-t az SMS gatewaynek. Az SMS gateway továbbítja az üzenetedet a mobilhálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.

SendSms.cpp letöltése

A cikkben ismertetett forráskód ingyenesen letölthető, felhasználható és módosítható.
Letöltés: SendMultipleSms.cpp.zip (2.97Mb)

Mi található a SendMultipleSms.cpp fájlban?

A SendMultipleSms.cpp fájl tartalmazza az Ozeki.Libs.Rest könyvtárat, amely minden szükséges eszközt biztosít az SMS-ek küldéséhez és fogadásához. A zip fájlban megtalálod a SendMultipleSms projektet is, amely tartalmazza a példakódot, amely bemutatja, hogyan küldj SMS-t. Ez a példakód az alábbiakban látható.

példa projekt több sms üzenet küldéséhez c plus plus használatával
2. ábra - Mi található a SendMultipleSms.cpp.zip-ben

Hogyan küldjünk több SMS-t C/C++-ból (Gyors lépések)

Több SMS küldése C/C++-ból:

  1. Állítsd be a Visual Studio Community-t
  2. Töltsd le a SendMultipleSms.cpp.zip fájlt
  3. Csomagold ki a .zip fájlt a Letöltések mappából
  4. Nyisd meg a sendsms.sln fájlt a Visual Studio-ban
  5. Indítsd el az Ozeki SMS Gateway-t
  6. Hozz létre egy HTTP API felhasználót az Ozeki-ben
  7. Futtasd a SendMultipleSms.cpp C/C++ kódot a Visual Studio-ban teszt SMS küldéséhez
  8. Ellenőrizd a Küldött mappát az Ozeki SMS Gateway-ben

Ozeki SMS Gateway telepítése és HTTP API felhasználó létrehozása

Ahhoz, hogy SMS-t tudj küldeni C/C++-ból, először telepítened kell az Ozeki SMS Gateway-t. Az SMS gateway telepíthető ugyanarra a számítógépre, ahol a C/C++ kódodat fejleszted a Visual Studio-ban. A telepítés után a következő lépés az, hogy csatlakoztassad az Ozeki SMS Gateway-t a mobilhálózathoz. Küldhetsz egy teszt SMS-t az Ozeki GUI-ból annak ellenőrzésére, hogy a mobilhálózati kapcsolatod működik-e. A környezet előkészítésének utolsó lépése egy HTTP sms api felhasználói fiók létrehozása. Hozz létre egy felhasználót "http_user" felhasználónévvel és "qwe123" jelszóval, hogy a példa módosítás nélkül működjön.

Miután a környezet be van állítva, futtathatod a C/C++ kódodat.

HTTP API URL SMS küldéséhez C/C++-ból

Ahhoz, hogy SMS-t küldj C/C++-ból, a C/C++ alkalmazásodnak HTTP kérést kell küldenie az SMS gatewaynek. Az API URL az alábbiakban látható. Figyelj arra, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét kell beírnod. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a C/C++ SMS alkalmazás fut, ez lehet 127.0.0.1. Ha másik számítógépre van telepítve, annak az IP címét kell megadnod.

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

HTTP hitelesítés SMS küldéséhez C/C++-ból

A C/C++ SMS kliens hitelesítéséhez a felhasználónevet és jelszót base64 kódolt formában kell elküldened a szervernek egy HTTP kérésben. A formátum: base64(username+":"+password). C#-ban a következő kódot használhatod a kódoláshoz:

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

Például, ha a 'http_user' felhasználónevet és a 'qwe123' jelszót kódolod, a következő base64 kódolt sztringet kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc SMS küldéséhez C/C++-ból

Az SMS üzenetek küldéséhez a következő sorokat kell tartalmaznia a HTTP kérés fejlécének. Figyelj arra, hogy egy content type és egy Authorization fejlécet is tartalmazunk.

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

HTTP kérés SMS küldéséhez C/C++-ból

Az SMS beküldéséhez a C/C++ alkalmazásod egy olyan HTTP kérést fog küldeni, mint az alábbi. Figyelj arra, hogy ez a kérés tartalmaz egy HTTP fejléc részt és egy HTTP törzs részt. A HTTP törzs egy JSON kódolt adatsztring. Ez tartalmazza a címzett számát és az üzenet szövegét.

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

{
	"messages":	[
		{
			"create_date":	"2021-06-29T08:40:11",
			"message_id":	"rde8491s-5wpt-am95-bxsh-vu1a8kns10et",
			"submit_delivery_requested":	true,
			"submit_report_requested":	true,
			"submit_view_requested":	true,
			"text":	"Hello world 1",
			"time_to_send":	"2021-06-29T08:40:11",
			"to_address":	"+36201111111",
			"valid_until":	"2021-07-06T08:40:11"
		},
		{
			"create_date":	"2021-06-29T08:40:11",
			"message_id":	"qxhm3cuw-kwqb-mldi-b0xb-vn8sfway1hs2",
			"submit_delivery_requested":	true,
			"submit_report_requested":	true,
			"submit_view_requested":	true,
			"text":	"Hello world 2",
			"time_to_send":	"2021-06-29T08:40:11",
			"to_address":	"+36202222222",
			"valid_until":	"2021-07-06T08:40:11"
		},
		{
			"create_date":	"2021-06-29T08:40:11",
			"message_id":	"hnvcmp4j-a303-4432-psok-txujv54w8wrg",
			"submit_delivery_requested":	true,
			"submit_report_requested":	true,
			"submit_view_requested":	true,
			"text":	"Hello world 3",
			"time_to_send":	"2021-06-29T08:40:11",
			"to_address":	"+36203333333",
			"valid_until":	"2021-07-06T08:40:11"
		}
	]
}
	

HTTP válasz a C/C++ SMS példa által kapott

Amint az SMS gateway megkapja ezt a kérést, egy HTTP választ fog generálni. A HTTP válasz tartalmazni fog egy státuszkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Egy JSON kódolt struktúrát is visszaad, amely hasznos részleteket nyújt az üzenet beküldéséről.

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 08:36:20 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "Messages queued for delivery.",
	"data": {
	  "total_count": 3,
	  "success_count": 3,
	  "failed_count": 0,
	  "messages": [
	    {
	      "message_id": "rde8491s-5wpt-am95-bxsh-vu1a8kns10et",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-06-29 08:40:11",
	      "valid_until": "2021-07-06 08:40:11",
	      "time_to_send": "2021-06-29 08:40:11",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "qxhm3cuw-kwqb-mldi-b0xb-vn8sfway1hs2",
	      "from_station": "%",
	      "to_address": "+36202222222",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-06-29 08:40:11",
	      "valid_until": "2021-07-06 08:40:11",
	      "time_to_send": "2021-06-29 08:40:11",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    },
	    {
	      "message_id": "hnvcmp4j-a303-4432-psok-txujv54w8wrg",
	      "from_station": "%",
	      "to_address": "+36203333333",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-06-29 08:40:11",
	      "valid_until": "2021-07-06 08:40:11",
	      "time_to_send": "2021-06-29 08:40:11",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

C/C++ SMS példa: SendMultipleSms.sln

Ebben a videóban megmutatjuk, hogyan küldhetsz több SMS üzenetet a tutorial oldalon megadott példa projekt segítségével. A videó a példa projekt letöltésével kezdődik, és a kód futtatásával ér véget. A videó rövid, de nagyon könnyen követhető. Nem lesz gondod a tutorial követésével. Ha ismered a C/C++-t, nyugodtan módosíthatod a változókat a kódban, hogy testreszabott üzenetet küldj testreszabott címekre.

1. videó - Hogyan töltsd le és nyisd meg a fenti megoldást (Videó tutorial)

Az alábbi példakód a SendMultipleSms.sln Visual Studio Solution része. Egy Visual Studio solution több projektet és fájlt is tartalmazhat. Ebben a solution-ben csak egy projekt található: SendMultipleSms.vcxproj, és egy fájl: SendMultipleSms.cs.

megoldás több sms üzenet küldéséhez c plus plus használatával
3. ábra - SendMultipleSms.sln

Hogyan használd a példa projektet (Videó tutorial)

A következő videóban megtanulod, hogyan futtasd a kódot és hogyan ellenőrizd az eredményeket. Először a videó megmutatja, hogyan futtasd a kódot. Aztán látni fogod, hogyan ellenőrizd a HTTP felhasználó Küldött mappáját. A videó végén látni fogod egy elküldött üzenet részleteit. A videó mindössze 46 másodperc hosszú, és tartalmazza az összes fontos lépést és információt, amelyre szükséged van a folyamat elvégzéséhez.

2. videó - Hogyan használd a SendMultipleSms.cpp megoldást (Videó tutorial)

Végső gondolatok

Ez az útmutató tartalmazza az összes alapvető információt arról, hogyan küldj több SMS üzenetet C / C++-ból az Ozeki SMS Gateway HTTP REST SMS API-jával. Nagyon hasznosnak találod ezt a megoldást, mert a C / C++ SMS API működik az Android SMS Gateway-vel is az online SMS szolgáltatók mellett, amelyek lehetővé teszik az SMS vezeték nélküli küldését. Ez a szolgáltatás lehetővé teszi, hogy értékes információkat juttass el egyszerre több mobiltelefonra, ezzel dinamikusabbá téve az üzenetküldésedet.

Menj tovább, és tanulj még többet most! Sok további hasonló dokumentumot találhatsz az Ozeki weboldalán. Más funkcionalitásokkal is használhatod a C / C++ SMS API-kat, nézd meg a Hogyan ütemezzünk egy SMS-t C/C++-ban című anyagot.

Gyakorlatba ültesd, amit tanultál, először töltsd le az Ozeki SMS Gateway-t!

More information