Cum să programezi un SMS în C/C++
Cea mai simplă metodă de a trimite SMS din C/C++ este să folosești API-ul HTTP/Rest SMS încorporat al Ozeki SMS Gateway. Când folosești acest API, vei trimite mesaje SMS prin emiterea unei cereri HTTP Post către gateway-ul SMS. Cererea HTTP Post va conține un mesaj formatat în format json. Gateway-ul SMS va trimite acest SMS către telefonul destinatar și va returna un răspuns HTTP 200 OK la cererea ta. (Figura 1)
Exemplul de cod C/C++ pentru SMS de mai jos demonstrează cum poți trimite SMS folosind API-ul HTTP rest SMS al Ozeki SMS Gateway cu ajutorul bibliotecii C++ Ozeki.Libs.Rest. Această bibliotecă este oferită gratuit și o poți folosi și modifica în oricare dintre proiectele tale.
SendScheduledSms.cpp#include#include #include "Ozeki.Libs.Rest.h" using namespace std; int main() { //Funcție pentru a crea un identificator unic pentru fiecare mesaj 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 = "Hello world!"; msg.TimeToSend = localdatetime(2021, 6, 29, 10, 0, 0); MessageApi api(configuration); auto result = api.Send(msg); cout << result << endl; return 0; }
Cum să folosești exemplul C/C++ pentru SMS:
Acest exemplu C/C++ pentru SMS poate fi folosit în orice aplicație C sau C++ core. Pentru a-l folosi, trebuie să adaugi DLL-ul Ozeki.Libs.Rest ca referință în proiectul tău. După ce referința proiectului este adăugată, trebuie să incluzi directiva using Ozeki.Libs.Rest; în secțiunea de antet a codului sursă C/C++. Acest lucru îți va permite să folosești clasele furnizate de biblioteca Ozeki.Libs.Rest. Poți folosi clasa Message pentru a crea SMS-ul. Poți folosi clasa MessageApi pentru a trimite SMS-ul către gateway-ul SMS. Gateway-ul SMS va transmite mesajul tău către rețeaua mobilă fie printr-o conexiune wireless fie prin Internet.
Descarcă SendScheduledSms.cpp
Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: SendScheduledSms.cpp.zip (2.97Mb)
Fișierul SendScheduledSms.cpp conține biblioteca Ozeki.Libs.Rest, care îți oferă toate instrumentele necesare pentru a trimite și primi mesaje SMS. Vei găsi de asemenea proiectul SendScheduledSms în arhiva zip, care conține codul exemplu pentru a-ți arăta cum să trimiți un SMS programat. Acest cod exemplu este listat mai jos. (Figura 2)
Pentru a trimite SMS programat din C/C++:
- Instalează utilizatorul HTTP API
- Configurează Visual Studio
- Descarcă fișierul SendScheduledSms.cpp.zip
- Extrage fișierul .zip din folderul Downloads
- Deschide fișierul SendScheduledSms.sln în Visual Studio
- Adaugă DLL-ul Ozeki.Libs.Rest ca referință
- Editează fișierul pentru a programa SMS din C/C++
- Lansează Ozeki SMS Gateway
- Rulează SendScheduledSms.cpp în Visual Studio pentru a trimite SMS din C/C++
- Verifică jurnalele
Pentru a putea trimite SMS din C/C++, mai întâi trebuie să instalezi Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același computer pe care dezvolți codul C/C++ în Visual Studio. După instalare, următorul pas este să conectezi Ozeki SMS Gateway la rețeaua mobilă. Poți trimite un SMS test din interfața Ozeki pentru a verifica dacă conexiunea ta la rețeaua mobilă funcționează. Ultimul pas pentru a-ți pregăti mediul este să creezi un utilizator HTTP SMS API. Creează un utilizator cu numele de utilizator "http_user" și parola "qwe123" pentru a face exemplul să funcționeze fără modificări.
După ce mediul este configurat, poți rula codul tău C/C++.
URL API HTTP pentru a trimite SMS din C/C++Pentru a trimite SMS din C/C++, aplicația ta C/C++ va trebui să emită o cerere HTTP către gateway-ul SMS. URL-ul API este afișat mai jos. Reține că adresa IP (127.0.0.1) ar trebui să fie înlocuită cu adresa IP a gateway-ului tău SMS. Dacă Ozeki SMS Gateway este instalat pe același computer pe care rulează aplicația C/C++ pentru SMS, aceasta poate fi 127.0.0.1. Dacă este instalat pe un computer diferit, ar trebui să fie adresa IP a acelui computer.
http://127.0.0.1:9509/api?action=rest
Autentificare HTTP pentru a trimite SMS din C/C++
Pentru a autentifica clientul SMS în C/C++, trebuie să trimiteți numele de utilizator și parola într-un șir codificat base64 către server într-o cerere HTTP. Formatul utilizat este: base64(nume_utilizator+":"+parolă). În C++ puteți utiliza următorul cod pentru a face această codificare:
string usernamePassword = username + ":" + password; string usernamePasswordEncoded = base64::encode(usernamePassword); return "Basic " + usernamePasswordEncoded;
De exemplu, dacă codificați numele de utilizator 'http_user' și parola 'qwe123', veți obține următorul șir codificat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite
Antetul cererii HTTP pentru a trimite SMS din C/C++Pentru a trimite mesajele SMS, trebuie să includeți următoarele linii ca antet în cererea HTTP. Rețineți că includem un tip de conținut și un antet de autorizare.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Pentru a trimite SMS-ul, aplicația dvs. în C/C++ va trimite o cerere HTTP similară cu cea de mai jos. Rețineți că această cerere conține o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codificat JSON. Acesta conține numărul destinatarului și textul mesajului.
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": "Hello world!", "time_to_send": "2021-06-29T10:30:00", "to_address": "+36201111111", "valid_until": "2021-07-06T10:21:47" } ] }
Odată ce gateway-ul SMS primește această cerere, va genera un răspuns HTTP. Răspunsul HTTP va conține un cod de stare, pentru a indica dacă cererea de trimitere a SMS-ului a fost reușită sau nu. De asemenea, va returna o structură codificată JSON pentru a vă oferi detalii utile despre trimiterea mesajului.
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": "Messages queued for delivery.", "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": "Hello world!", "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" } ] } }
Exemplul de cod de mai jos face parte din Soluția Visual Studio SendScheduledSms.sln. O soluție Visual Studio poate conține mai multe proiecte și mai multe fișiere. În această soluție există doar un proiect: SendScheduledSms.vcxproj și un fișier: SendScheduledSms.cpp.
Următorul videoclip explică cum să programați un SMS cu un cod C/C++. Videoclipul începe cu deschiderea Ozeki SMS Gateway și, parcurgând toți pașii, veți avea un mesaj SMS așteptând să fie trimis în folderul amânat. Acest videoclip de 1:44 minute este ușor de înțeles și arată clar toți pașii. Veți folosi tabloul de bord Ozeki SMS Gateway, care vă permite să accesați cele mai importante funcții cu un singur clic. Veți învăța cum să lansați Ozeki SMS Gateway și cum să verificați folderul outbox. Cum să lansați codul și cum să furnizați ora de trimitere a SMS-ului.
Rezumat
Funcția principală a acestui articol a fost să explice cum să programați un SMS în C/C++ cu utilizatorul API HTTP SMS al Ozeki SMS Gateway. Dacă ați citit cu atenție ghidul, programarea SMS-urilor cu C/C++ ar trebui să fie foarte ușoară. Distribuirea informațiilor la momentul perfect este esențială pentru cea mai eficientă muncă, deoarece în acest fel puteți menține traficul de SMS scăzut și puteți contacta colegii dvs. chiar atunci când sunt pregătiți să citească mesaje.
Asigurați-vă că continuați să citiți ghiduri pe pagina web Ozeki pentru mai multe informații. Aprofundați-vă în alte tutoriale C/C++ precum Cum să primiți un SMS în C/C++ și multe altele.
Acum descărcați Ozeki SMS Gateway și lăsați munca să înceapă!
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