Hogyan kapjunk SMS-t C/C++ nyelven

A legegyszerűbb módja az SMS küldésének C/C++ nyelven 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 kapjunk sms-t ccpp nyelven
1. ábra - Hogyan kapjunk SMS-t C/C++ nyelven

C/C++ kód SMS fogadására mobiltelefonról

Az alábbi C/C++ SMS kódminta bemutatja, hogyan fogadhatsz SMS-t az Ozeki SMS Gateway http rest sms API-jával, a 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.

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

using namespace std;

int main()
{
    //Függvény minden üzenethez egyedi azonosító létrehozásához
    srand((unsigned)time(0));

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

    MessageApi api(configuration);

    auto result = api.DownloadIncoming();

    cout << result << endl;
    for (Message message : result.Messages) {
        cout << message << endl;
    }

    return 0;
}
	

Hogyan használd a C++ SMS példát:

Ez a C++ SMS példa bármely C vagy 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ák hozzáadása után a using Ozeki.Libs.Rest; direktívát be kell illesztened 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 MessageApi osztály segítségével fogadhatod az SMS-t az SMS gateway-től. Az SMS gateway vezeti át az üzenetet vezeték nélküli kapcsolaton vagy az interneten keresztül.

Receive-SMS.cpp letöltése

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

Mi található a ReceiveSms.cpp.zip fájlban?

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

2. ábra - Mi található a ReceiveSms.cpp.zip fájlban

Hogyan fogadjunk SMS-t C/C++ nyelven (Egyszerű útmutató)

Az SMS fogadásához C/C++ nyelven:

  1. Állítsd be a Visual Studio Community-t
  2. Töltsd le a ReceiveSms.cpp.zip fájlt
  3. Csomagold ki a .zip fájlt a Letöltésekből
  4. Nyisd meg a ReceiveSms.sln fájlt a Visual Studio-ban
  5. Indítsd el az Ozeki SMS Gateway-t
  6. Kattints a HTTP felhasználóra a Felhasználók és alkalmazások lapon
  7. Futtasd a ReceiveSms.cpp-t az SMS fogadásához C/C++ nyelven
  8. Ellenőrizd a Beérkezett üzeneteket az Ozeki SMS Gateway-ben

Telepítsd az Ozeki SMS Gateway-t és hozz létre egy HTTP API felhasználót

Ahhoz, hogy SMS-t tudj küldeni és fogadni C/C++ nyelven, 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 csatlakoztad 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. A környezet előkészítésének utolsó lépése az, hogy létrehozol egy HTTP SMS API felhasználói fiókot. 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állításra került, futtathatod a C/C++ kódodat.

HTTP API URL az SMS fogadásához C/C++ nyelven

Az SMS fogadásához C/C++ nyelven a C/C++ alkalmazásodnak HTTP kérést kell küldenie az SMS gateway felé. Az API URL az alábbiakban látható. Fontos, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét írd. 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 IP címét kell megadni.

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

HTTP hitelesítés az SMS fogadásához C/C++ nyelven

A C/C++ SMS kliens hitelesítéséhez a felhasználónevet és jelszót base64 kódolású karakterláncként kell elküldened a szerver felé egy HTTP kérésben. A használt formátum: base64(felhasználónév+":"+jelszó). C++ nyelven 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ódolású karakterláncot kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés az SMS fogadásához C/C++ nyelven

Az SMS fogadásához a C/C++ alkalmazásod egy olyan HTTP kérést fog küldeni, mint az alábbi. Figyelj fel, 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ódolású adatsor. Tartalmazza a címzett számát és az üzenet szövegét.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
	

HTTP kérés fejléc az SMS fogadásához C/C++ nyelven

Az SMS üzenetek küldéséhez a következő sorokat kell fejléc részként tartalmaznia az HTTP kérésnek. Figyelj fel, hogy tartalmazunk egy tartalomtípust és egy Authorization fejlécet.

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

HTTP válasz, amit a C/C++ SMS példa kap

Amint az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. Az HTTP válasz tartalmaz egy állapotkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Emellett egy JSON kódolású struktúrát is visszaad, ami 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 10:59:51 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "",
	"data": {
	  "folder": "inbox",
	  "limit": "1000",
	  "data": [
	    {
	      "message_id": "5d78e707-13d3-49d3-9b7d-66ba0c24b21e",
	      "from_connection": "admin@localhost",
	      "from_address": "",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-06-29 11:07:33",
	      "valid_until": "2021-07-06 11:07:33",
	      "time_to_send": "2021-06-29 11:07:33",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": []
	    },
	    {
	      "message_id": "695acc97-43b6-4cf1-a6ae-c19e3f908c8f",
	      "from_connection": "admin@localhost",
	      "from_address": "",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-06-29 11:07:23",
	      "valid_until": "2021-07-06 11:07:23",
	      "time_to_send": "2021-06-29 11:07:23",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": []
	    },
	    {
	      "message_id": "333f852e-2f8f-464d-9663-831e857819ca",
	      "from_connection": "admin@localhost",
	      "from_address": "",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-06-29 11:07:10",
	      "valid_until": "2021-07-06 11:07:10",
	      "time_to_send": "2021-06-29 11:07:10",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": []
	    }
	  ]
	}
}
	

A C/C++ projekt letöltése és megnyitása (Videó útmutató)

A következő videóban megmutatjuk, hogyan töltsd le és nyisd meg a projektfájlt. A videó a letöltési link megtalálásával kezdődik, és a projekt használatra kész állapotával ér véget. Ez az 1:32 perc hosszú videó könnyen érthető és nagyon részletes. Nem lesz gondod a tutorial követésével. A Visual Studio fejlesztői környezetet használjuk a projekt megnyitásához.

1. videó - Hogyan töltsd le és futtasd a példa megoldást (Videó útmutató)

Az alábbi példakód a Receive-SMS.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ó: Receive-SMS.csproj, és egy fájl: Program.cs.

3. ábra - ReceiveSms.sln

A projekt használata (videó útmutató)

A következő videó elmagyarázza, hogyan használd a projektet. Az Ozeki SMS Gateway megnyitásával kezdődik, és végigvezet a parancssorban megjelenő üzenetek listájáig. A folyamat során látni fogod, hogyan mozgatja a kód az üzeneteket a beérkezett üzenetek mappából a C/C++ projektbe. A videó remek, mert részletesen bemutatja az összes lépést, és könnyen érthető. Csak 34 másodpercet kell töltened a videó megnézésével, és az Ozeki SMS Gateway irányítópultját fogod használni, ami nagyon intuitív. Nem lesz gondod a tutorial követésével.

2. videó - SMS fogadása a fenti C++ kóddal (Videó útmutató)

Összefoglalás

Ez az útmutató bemutatta, hogyan fogadj SMS-t C / C++ nyelven az Ozeki SMS Gateway HTTP SMS API felhasználójával. Ezzel a megoldással biztosíthatod, hogy a beérkező üzeneteket az SMS API továbbítja, és a Scala programod fogadja. A névjegyzéked és az adataid biztonságban vannak, mivel az Ozeki SMS Gateway egy zárt környezetben fut, amelyet te irányítasz.

Olvass tovább ehhez hasonló témákról az Ozeki weboldalán. Nézd meg a Hogyan töröljünk egy SMS-t C/C++ nyelven című cikket, és használd a megadott kódokat korlátozás nélkül.

Kezdj el dolgozni az Ozeki SMS Gateway letöltésével most!

More information