Cum să primești SMS în C#

Cea mai simplă metodă de a trimite SMS din C# este să folosești API-ul HTTP/Rest SMS integrat al Ozeki SMS Gateway. Când folosești acest API, vei trimite mesaje SMS prin efectuarea 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.

cum să primești sms în c# folosind api-ul rest
Figura 1 - Primește SMS în C# folosind API-ul Rest

Cod C# pentru a primi SMS de la mobil

Exemplul de cod C# pentru SMS de mai jos demonstrează cum poți primi 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.

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 + " mesaje descărcate din inbox.");

            foreach(Message msg in messages)
            {
                Console.WriteLine(msg);   
            };

            Console.ReadKey();
        }
    }
}

Cum să folosești exemplul C# pentru SMS:

Acest exemplu C# pentru SMS poate fi folosit în orice aplicație .NET sau .NET core. Pentru a-l folosi, trebuie să adaugi DLL-ul Ozeki.Libs.Rest ca referință în proiectul tău. După ce referința este adăugată, trebuie să incluzi directiva using Ozeki.Libs.Rest; în secțiunea de antet a codului sursă C#. Acest lucru îți va permite să folosești clasele furnizate de biblioteca Ozeki.Libs.Rest. Poți folosi clasa MessageApi pentru a primi SMS de la gateway-ul SMS. Gateway-ul SMS va trimite mesajul către tine fie printr-o conexiune wireless, fie prin Internet.

Descarcă ReceiveSms.cs

Codul sursă explicat în acest articol poate fi descărcat, folosit și modificat gratuit.
Descarcă: ReceiveSms.cs.zip (33.8Kb)

Ce conține fișierul ReceiveSms.cs.zip?

Fișierul ReceiveSms.cs.zip 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 ReceiveSms în arhivă, care conține codul exemplu pentru a-ți arăta cum să primești un SMS. Acest cod exemplu este listat mai jos.

director receive sms cs
Figura 2 - Ce conține ReceiveSms.cs.zip

Cum să primești SMS în C# (Ghid simplu)

Pentru a primi SMS în C#:

  1. Configurează Visual Studio Community
  2. Descarcă fișierul ReceiveSms.cs.zip
  3. Extrage fișierul .zip din folderul Descărcări
  4. Deschide fișierul ReceiveSms.sln în Visual Studio
  5. Lansează Ozeki SMS Gateway
  6. Apasă pe HTTP user în fila Users and applications
  7. Rulează Program.cs pentru a primi SMS în C#
  8. Verifică Inbox-ul în Ozeki SMS Gateway

Instalează Ozeki SMS Gateway și creează un utilizator HTTP API

Pentru a putea trimite și primi SMS din 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# î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 "http_user" și parola "qwe123" pentru ca exemplul să funcționeze fără modificări.

După ce mediul este configurat, poți rula codul tău C#.

URL-ul API HTTP pentru a primi SMS din C#

Pentru a trimite SMS din C#, aplicația ta C# va trebui să efectueze 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# pentru SMS, 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

Autentificarea HTTP pentru a primi SMS din C#

Pentru a autentifica clientul C# SMS, trebuie să trimiți numele de utilizator și parola într-un șir codificat base64 către server într-o cerere HTTP. Formatul folosit este: base64(nume_utilizator+":"+parolă). În C# poți folosi următorul cod pentru a face această codificare:

var encoding = Encoding.GetEncoding("iso-8859-1");
var usernamePassword = username + ":" + password;
var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
	

De exemplu, dacă codezi numele de utilizator 'http_user' și parola 'qwe123', vei obține următorul șir codificat base64: aHR0cF91c2VyOnF3ZTEyMw==. Pentru a trimite

Cerere HTTP pentru primirea SMS-urilor cu C#

Pentru a primi SMS-uri, aplicația ta C# va trimite o cerere HTTP similară cu cea de mai jos. Reține că această cerere conține o parte de antet HTTP și o parte de corp HTTP. Corpul HTTP este un șir de date codificat în JSON. Acesta conține numărul destinatarului și textul mesajului.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
Connection: Keep-Alive
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
	

Antetul cererii HTTP pentru primirea SMS-urilor din C#

Pentru a trimite mesajele SMS, trebuie să incluzi următoarele linii ca antete în cererea HTTP. Reține că includem un tip de conținut și un antet de autorizare.

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

Răspunsul HTTP primit de exemplul C# pentru SMS

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ă trimiterea SMS-ului a fost reușită sau nu. De asemenea, va returna o structură codificată în JSON pentru a-ți oferi detalii utile despre trimiterea mesajului.

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": "Hello, World 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": "Hello, World 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": "Hello, World 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"
				}
			]
		}
	]
	}
}

Cum să primești SMS-uri cu C# folosind API-ul SMS pentru C# (Tutorial video)

Acest videoclip îți arată cum să creezi un nou proiect consolă .Net core în Visual Studio, cum să-l denumești ReceiveSms.sln. Odată ce soluția este creată, poți observa că un fișier Receive-SMS.csproj este adăugat la soluție, iar în mod implicit fișierul Program.cs este deschis. Poți redenum

Rularea exemplului de SMS în C# pe Windows

Când folosești Windows pentru a rula acest exemplu de SMS scris în C#, vei observa că obții o performanță ușor mai bună decât atunci când îl rulezi pe Linux. Pentru a înțelege de ce se întâmplă acest lucru, trebuie să ții cont de faptul că C# folosește cadrul .NET pentru executarea codului. Acest lucru se datorează faptului că implementarea .NET pe Windows este optimizată pentru performanță, în timp ce mono, implementarea .NET pe Linux, mai are de recuperat în acest domeniu.

Concluzie

Acest articol a prezentat pașii necesari pentru primirea SMS-urilor în C#. Cu acest ghid și Ozeki SMS Gateway, primirea SMS-urilor în C# nu mai poate fi o problemă. Studiază ghidul cu atenție și vei putea efectua acești pași cu ușurință. Ozeki SMS Gateway este crucial în acest procedeu, servind drept connector între utilizatorii mobili și tine. Faptul că Ozeki SMS Gateway rulează într-un mediu pe care îl controlezi trebuie subliniat, deoarece înseamnă că lista ta de contacte și datele tale sunt în siguranță.

Continuă să citești pe pagina de tutoriale Ozeki, unde poți găsi mai multe ghiduri despre subiecte precum programarea din C#.

Descarcă Ozeki SMS Gateway acum și începe lucrul!

More information