Kako primiti SMS u C#
Najjednostavniji način za slanje SMS-a iz C# je korišćenje ugrađenog HTTP/Rest SMS API-ja Ozeki SMS Gateway-a. Kada koristite ovaj API, slaćete SMS poruke tako što ćete poslati HTTP Post zahtev ka SMS gateway-u. HTTP Post zahtev će sadržati poruku formatiranu u json formatu. SMS gateway će poslati ovaj SMS primaocu na telefon, i vratiće HTTP 200 OK odgovor na vaš zahtev.
C# SMS primer koda ispod demonstrira kako možete primiti SMS koristeći http rest SMS API Ozeki SMS Gateway-a koristeći C# Ozeki.Libs.Rest biblioteku. Ova biblioteka vam je dostupna besplatno, i možete je koristiti i modifikovati u bilo kom od vaših projekata.
Program.csusing Ozeki.Libs.Rest; using System; namespace ReceiveSms { class Program { static void Main(string[] args) { var configuration = new Configuration() { Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api" }; var api = new MessageApi(configuration); var messages = api.DownloadIncoming(); Console.WriteLine(messages.Length + " poruka preuzeto iz inbox-a."); foreach(Message msg in messages) { Console.WriteLine(msg); }; Console.ReadKey(); } } }
Kako koristiti C# SMS primer:
Ovaj C# SMS primer može se koristiti u bilo kojoj .NET ili .NET core aplikaciji. Da biste ga koristili, morate dodati Ozeki.Libs.Rest dll kao referencu u vaš projekat. Nakon dodavanja reference u projekat, morate staviti direktivu using Ozeki.Libs.Rest; u zaglavlje vašeg C# izvornog koda. Ovo će vam omogućiti da koristite klase koje pruža Ozeki.Libs.Rest biblioteka. Možete koristiti klasu MessageApi da biste primali SMS od SMS gateway-a. SMS gateway će vam proslediti poruku bilo preko bežične veze ili preko interneta.
Preuzmite ReceiveSms.cs
Izvorni kod objašnjen u ovom članku može se preuzeti, koristiti i modifikovati besplatno.
Preuzmi: ReceiveSms.cs.zip (33.8Kb)
ReceiveSms.cs.zip fajl sadrži Ozeki.Libs.Rest biblioteku, koja vam daje sve alate potrebne za slanje i primanje SMS poruka. Takođe ćete naći ReceiveSms projekat u zip fajlu, koji sadrži primer koda koji pokazuje kako primiti SMS. Ovaj primer koda je prikazan ispod.
Da biste primili SMS u C#:
- Podesite Visual Studio Community
- Preuzmite ReceiveSms.cs.zip fajl
- Raspakujte .zip fajl iz foldera Preuzimanja
- Otvorite ReceiveSms.sln fajl u Visual Studio-u
- Pokrenite Ozeki SMS Gateway
- Kliknite na HTTP korisnika u kartici Korisnici i aplikacije
- Pokrenite Program.cs da biste primili SMS u C#
- Proverite Inbox u Ozeki SMS Gateway-u
Da biste mogli da šaljete i primate SMS iz C#, prvo morate instalirati Ozeki SMS Gateway. SMS gateway može biti instaliran na istom računaru gde razvijate svoj C# kod u Visual Studio-u. Nakon instalacije, sledeći korak je da povežete Ozeki SMS Gateway sa mobilnom mrežom. Možete poslati test SMS iz Ozeki GUI-a da biste potvrdili da vaša mobilna mrežna veza radi. Poslednji korak za pripremu vašeg okruženja je da napravite HTTP SMS API korisnički nalog. Napravite korisnika sa korisničkim imenom "http_user", i lozinkom "qwe123" da biste omogućili da primer radi bez modifikacija.
Nakon što je okruženje podešeno, možete pokrenuti svoj C# kod.
HTTP API url za primanje SMS-a u C#Da biste primali SMS u C#, vaš C# kod će morati da pošalje HTTP zahtev ka SMS gateway-u. API url je prikazan ispod. Imajte na umu da IP adresa (127.0.0.1) treba da bude zamenjena sa IP adresom vašeg SMS gateway-a. Ako je Ozeki SMS Gateway instaliran na istom računaru gde se pokreće C# SMS aplikacija, ovo može biti 127.0.0.1. Ako je instaliran na drugom računaru, treba da bude IP adresa tog računara.
http://127.0.0.1:9509/api?action=rest
Da biste autentifikovali C# SMS klijent, morate poslati korisničko ime i lozinku u base64 kodiranom stringu ka serveru u HTTP zahtevu. Format koji se koristi je: base64(korisničko_ime+":"+lozinka). U C# možete koristiti sledeći kod za ovo kodiranje:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
Na primer, ako kodirate korisničko ime 'http_user' i lozinku 'qwe123', dobićete base64 kodirani string: aHR0cF91c2VyOnF3ZTEyMw==. Da biste poslali
HTTP zahtev za primanje SMS-a sa C#
Da biste primili SMS, vaša C# aplikacija će poslati HTTP zahtev sličan onome ispod. Imajte na umu da ovaj zahtev sadrži deo HTTP zaglavlja i deo HTTP tela. HTTP telo je JSON kodirani niz podataka. Sadrži broj primaoca i tekst poruke.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Connection: Keep-Alive Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509
Za slanje SMS poruka, potrebno je da uključite sledeće linije kao zaglavlja u HTTP zahtev. Imajte na umu da uključujemo tip sadržaja i zaglavlje za autorizaciju.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Nakon što SMS gateway primi ovaj zahtev, generisaće HTTP odgovor. HTTP odgovor će sadržati statusni kod, kako bi naznačio da li je zahtev za slanje SMS-a uspešan ili ne. Takođe će vratiti JSON kodiranu strukturu kako bi vam pružio korisne detalje o slanju poruke.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Mon, 07 Jun 2021 14:10:25 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "b754195d-9bd8-48dc-a45f-cf688c5b32e3", "from_connection": "http_user@localhost", "from_address": "+36201111111", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Zdravo, svete 1", "create_date": "2021-06-08 09:12:24", "valid_until": "2021-06-15 09:12:24", "time_to_send": "0001-01-01 00:00:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "a6337c23-51bc-43ee-9181-c9838abbe161", "from_connection": "http_user@localhost", "from_address": "+36202222222", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Zdravo, svete 2", "create_date": "2021-06-08 09:12:24", "valid_until": "2021-06-15 09:12:24", "time_to_send": "0001-01-01 00:00:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "ca14710b-42b9-4abc-b04f-262cc282dd7c", "from_connection": "http_user@localhost", "from_address": "+36203333333", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Zdravo, svete 3", "create_date": "2021-06-08 09:12:24", "valid_until": "2021-06-15 09:12:24", "time_to_send": "0001-01-01 00:00:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] } ] } }
Ovaj video vam pokazuje kako kreirati novi .Net core konzolni projekat u Visual Studio-u, kako ga nazvati ReceiveSms.sln. Nakon što je rešenje kreirano, možete primetiti da je Receive-SMS.csproj dodat u rešenje, i podrazumevano se otvara Program.cs fajl. Možete preimenovati Program.cs u ReceiveSMS.cs ako želite. Takođe ćete videti u videu kako se primer koda ispod može kopirati u Program.cs fajl, i kako se može kompajlirati i izvršiti.
C# SMS primer: ReceiveSms.slnKako preuzeti i pokrenuti primer projekta (Video tutorijal)
U ovom videu, naučićete kako preuzeti i pokrenuti ReceiveSMS.sln primer projekta. Video će početi sa stranicom za preuzimanje i završiće se sa otvorenim editorom koda. Naučićete kako preuzeti i gde pronaći vaš primer projekta. Takođe, pokazaćemo vam kako otvoriti preuzeti projekat. Ovaj video traje samo 1 minut ali je veoma detaljan, tako da nećete imati problema sa praćenjem koraka.
Primer koda ispod je deo ReceiveSms.sln Visual Studio rešenja. Visual studio rešenje može sadržati više projekata i više fajlova. U ovom rešenju postoji samo jedan projekat: ReceiveSms.csproj, i jedan fajl: Program.cs.
U sledećem videu, naučićete kako pokrenuti primer koda i kako proveriti log procesa. Počeće sa pokretanjem Ozeki SMS Gateway-a i odvešće vas sve do taba sa događajima. Naučićete kako proveriti log, kako pokrenuti vaš kod i kako proveriti primljene poruke. Video traje samo 1 minut ali sadrži sve potrebne informacije koje su vam potrebne za korišćenje ReceiveSMS.sln projekta.
Pokretanje C# SMS primera na Windowsu
Kada koristite Windows za pokretanje ovog SMS primera napisanog u C#, primetićete da dobijate nešto bolje performanse nego kada ga pokrenete na Linuxu. Da biste razumeli zašto se ovo dešava, morate imati na umu da C# koristi .NET framework za izvršavanje koda. Ovo je zato što je .NET implementacija na Windowsu optimizovana za performanse, dok mono, .NET implementacija na Linuxu, ima još da nadoknadi u ovoj oblasti.
Zaključak
Ovaj članak je pokazao neophodne korake za primanje SMS poruka u C#. Sa ovim vodičem i Ozeki SMS Gateway-om, primanje SMS poruka u C# više ne mora biti problem. Pažljivo proučite vodič i moći ćete lako da izvršite ove korake. Ozeki SMS Gateway je ključan u ovom postupku, jer služi kao konektor između mobilnih korisnika i vas. Činjenica da Ozeki SMS Gateway radi u okruženju koje vi kontrolišete mora biti istaknuta jer to znači da su vaša lista kontakata i podaci sigurni.
Nastavite čitanje na Ozeki-ovoj stranici sa tutorijalima, gde možete pronaći još vodiča o temama poput zakazivanja iz C#.
Preuzmite Ozeki SMS Gateway sada i neka rad počne!
More information