Ako prijímať SMS v C/C++
Najjednoduchší spôsob, ako odosielať SMS z C/C++, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete odosielať SMS správy vydaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu formátovanú v json formáte. SMS brána odošle túto SMS príjemcovi a vráti HTTP 200 OK odpoveď na vašu požiadavku.
Ukážka kódu v C/C++ nižšie demonštruje, ako môžete prijímať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway pomocou knižnice C++ Ozeki.Libs.Rest. Táto knižnica je poskytovaná bezplatne a môžete ju používať a upravovať v akomkoľvek z vašich projektov.
ReceiveSms.cpp#include <iostream> #include <string> #include "Ozeki.Libs.Rest.h" using namespace std; int main() { //Funkcia na vytvorenie unikátneho identifikátora pre každú správu 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; }
Ako použiť príklad v C++:
Tento príklad v C++ môže byť použitý v akejkoľvek aplikácii v C alebo C++. Na použitie je potrebné pridať Ozeki.Libs.Rest.dll ako referenciu do vášho projektu. Po pridaní referencie do projektu musíte vložiť direktívu using Ozeki.Libs.Rest; do hlavičkovej časti vášho zdrojového kódu v C/C++. To vám umožní používať triedy poskytované knižnicou Ozeki.Libs.Rest. Môžete použiť triedu MessageApi na prijatie SMS z SMS brány. SMS brána vám prepošle správu buď prostredníctvom bezdrôtového pripojenia alebo cez internet.
Stiahnuť Receive-SMS.cs
Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: ReceiveSms.cpp.zip (2.97Mb)
Súbor ReceiveSms.cpp.zip obsahuje knižnicu Ozeki.Libs.Rest, ktorá vám poskytuje všetky potrebné nástroje na odosielanie a prijímanie SMS správ. Nájdete tu aj projekt ReceiveSms, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako prijímať SMS. Tento ukážkový kód je uvedený nižšie.
Na prijímanie SMS v C/C++:
- Nainštalujte Visual Studio Community
- Stiahnite si súbor ReceiveSms.cpp.zip
- Extrahujte .zip súbor z priečinka Stiahnuté
- Otvorte súbor ReceiveSms.sln v programe Visual Studio
- Spustite Ozeki SMS Gateway
- Kliknite na HTTP používateľa v karte Používatelia a aplikácie
- Spustite ReceiveSms.cpp na prijímanie SMS v C/C++
- Skontrolujte Doručenú poštu v Ozeki SMS Gateway
Na odosielanie a prijímanie SMS z C/C++ je potrebné najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnaký počítač, na ktorom vyvíjate svoj kód v C/C++ v programe Visual Studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z grafického rozhrania Ozeki na overenie, či vaše pripojenie k mobilnej sieti funguje. Posledným krokom na prípravu vášho prostredia je vytvorenie používateľského účtu HTTP SMS API. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.
Po nastavení prostredia môžete spustiť svoj kód v C/C++.
HTTP API URL na prijímanie SMS v C/C++Na prijímanie SMS pomocou C/C++ bude vaša aplikácia v C/C++ musieť odoslať HTTP požiadavku na SMS bránu. API URL je uvedené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaná na rovnakom počítači, na ktorom beží vaša aplikácia v C/C++, môže to byť 127.0.0.1. Ak je nainštalovaná na inom počítači, mala by to byť IP adresa toho počítača.
http://127.0.0.1:9509/api?action=rest
Na autentifikáciu klienta SMS v C/C++ je potrebné odoslať používateľské meno a heslo v reťazci zakódovanom do base64 na server v HTTP požiadavke. Používa sa formát: base64(používateľské meno+":"+heslo). V C++ môžete na toto kódovanie použiť nasledujúci kód:
string usernamePassword = username + ":" + password; string usernamePasswordEncoded = base64::encode(usernamePassword); return "Basic " + usernamePasswordEncoded;
Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci reťazec zakódovaný do base64: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie
HTTP požiadavka na prijatie SMS pomocou C/C++
Na prijatie SMS bude vaša aplikácia v C/C++ odosielať HTTP požiadavku podobnú tej, ktorá je uvedená nižšie. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť HTTP tela. Telo HTTP je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text správy.
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
Na odoslanie SMS správ musíte do HTTP požiadavky zahrnúť nasledujúce riadky ako hlavičky. Upozorňujeme, že obsahujeme hlavičku typu obsahu a autorizácie.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Taktiež vráti štruktúru zakódovanú v JSON, ktorá poskytne užitočné informácie o odoslaní správy.
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": [] } ] } }
V nasledujúcom videu vám ukážeme, ako stiahnuť a otvoriť súbor projektu. Video začína nájdením odkazu na stiahnutie a končí projektom pripraveným na použitie. Toto 1:32 minútové video je ľahko zrozumiteľné a veľmi podrobné. Nebudete mať žiadny problém s porozumením tohto návodu. Používame vývojové prostredie Visual Studio na otvorenie projektu.
Príkladový kód nižšie je súčasťou riešenia Visual Studio Receive-SMS.sln. Riešenie Visual Studio môže obsahovať viacero projektov a súborov. V tomto riešení je len jeden projekt: Receive-SMS.csproj a jeden súbor: Program.cs.
Nasledujúce video vysvetľuje, ako použiť projekt. Začína otvorením Ozeki SMS Gateway a prevedie vás až k zoznamu správ v príkazovom riadku. Počas procesu uvidíte, ako kód presúva správy z priečinka doručenej pošty do projektu C/C++. Video je skvelé, pretože obsahuje všetky kroky podrobne a je ľahko zrozumiteľné. Na sledovanie videa budete potrebovať len 34 sekúnd a použijete ovládací panel Ozeki SMS Gateway, ktorý je veľmi intuitívny. Nebudete mať žiadny problém s nasledovaním návodu.
Aby sme to zhrnuli
Tento sprievodca vám ukázal, ako prijímať SMS v C/C++ pomocou HTTP SMS API používateľa Ozeki SMS Gateway. S týmto riešením môžete zabezpečiť, že prichádzajúce správy budú presmerované SMS API a prijaté vaším programom v Scala. Váš zoznam kontaktov a dáta sú v bezpečí, pretože Ozeki SMS Gateway beží v uzavretom prostredí, ktoré kontrolujete.
Pokračujte v čítaní o podobných témach na webovej stránke Ozeki. Pozrite si Ako vymazať SMS v C/C++ a použite poskytnuté kódy bez obmedzení.
Začnite pracovať stiahnutím Ozeki SMS Gateway hneď teraz!
More information
- C/Cpp send SMS with the HTTP rest API (code sample)
- C/Cpp send multiple SMS with the HTTP rest API (code sample)
- C/Cpp schedule SMS with the HTTP rest API (code sample)
- C/Cpp receive SMS with the HTTP rest API (code sample)
- C/Cpp delete SMS with the HTTP rest API (code sample)
- How to download the latest C/Cpp SMS API library from Github