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.

kako primiti sms u c koristeći rest api
Slika 1 - Primanje SMS-a u C# koristeći Rest api

C# kod za primanje SMS-a sa mobilnog telefona

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.cs
using 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)

Šta se nalazi u ReceiveSms.cs.zip fajlu?

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.

receive sms cs direktorijum
Slika 2 - Šta se nalazi u ReceiveSms.cs.zip

Kako primiti SMS u C# (Jednostavne uputstvo)

Da biste primili SMS u C#:

  1. Podesite Visual Studio Community
  2. Preuzmite ReceiveSms.cs.zip fajl
  3. Raspakujte .zip fajl iz foldera Preuzimanja
  4. Otvorite ReceiveSms.sln fajl u Visual Studio-u
  5. Pokrenite Ozeki SMS Gateway
  6. Kliknite na HTTP korisnika u kartici Korisnici i aplikacije
  7. Pokrenite Program.cs da biste primili SMS u C#
  8. Proverite Inbox u Ozeki SMS Gateway-u
Instalirajte Ozeki SMS Gateway i napravite HTTP API korisnika

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
HTTP autentifikacija za primanje SMS-a u C#

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
	
HTTP zaglavlje zahteva za primanje SMS-a iz C#

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==
	
HTTP odgovor primljen u C# SMS primeru

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"
				}
			]
		}
	]
	}
}
Kako primiti SMS sa C# koristeći C# SMS API (Video tutorijal)

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.sln
Kako 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.

Video 1 - Kako preuzeti i pokrenuti primer rešenja (Video tutorijal)

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.

Slika 3 - ReceiveSms.sln

Kako koristiti kod (Video tutorijal)

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.

Video 2 - Kako primiti SMS sa C# kodom iznad (Video tutorijal)

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