Cum să trimiți SMS din C#

Cea mai simplă metodă de a trimite SMS din C# este utilizarea API-ului HTTP/Rest SMS încorporat 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. (Figura 1)

cum să trimiți un sms din c
Figura 1 - Cum să trimiți un SMS din C#

Cod C# pentru a trimite SMS pe mobil

Exemplul de cod 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 poți să o folosești și să o modifici în oricare dintre proiectele tale.

SendSMS.cs
using Ozeki.Libs.Rest;
using System;

namespace SendSms
{
    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 msg = new Message()
            {
                ToAddress = "+36201111111",
                Text = "Salut, Lume!"
            };

            var api = new MessageApi(configuration);

            var result = api.Send(msg);

            Console.WriteLine(result);
            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 la proiect 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 oferite 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ă SendSMS.cs

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

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

Fișierul SendSms.cs.zip conține biblioteca Ozeki.Libs.Rest, care îți oferă toate instrumentele necesare pentru a trimite și primi mesaje SMS. De asemenea, vei găsi proiectul SendSms în arhivă, care conține codul exemplu pentru a-ți arăta cum să trimiți un SMS. Acest cod exemplu este listat mai jos. (Figura 2)

director send sms cs
Figura 2 - Ce conține SendSms.cs.zip

Cum să trimiți SMS din C# (Ghid simplu)

Pentru a trimite SMS din C#:

  1. Instalează un utilizator HTTP API
  2. Activează Log communication events în fila Advanced
  3. Configurează Visual Studio
  4. Descarcă și apoi extrage fișierul SendSms.cs.zip
  5. Deschide fișierul SendSms.sln în Visual Studio
  6. Lansează aplicația Ozeki SMS Gateway
  7. Rulează codul C# Program.cs în Visual Studio
  8. Verifică jurnalele pentru a vedea dacă SMS-ul a fost trimis
Instalează Ozeki SMS Gateway și creează un utilizator HTTP API

Pentru a putea trimite SMS din C#, mai întâi trebuie să instalezi Ozeki SMS Gateway. Gateway-ul SMS poate fi instalat pe același computer pe care îți 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 grafică 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 ca exemplul să funcționeze fără modificări.

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

URL API HTTP pentru a trimite 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, 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#

Pentru a autentifica clientul C# pentru 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

Antet cerere HTTP pentru a trimite SMS din C#

Pentru a trimite mesajele SMS, trebuie să incluzi următoarele linii ca antete în cererea HTTP. Reține că includem un antet Content-Type și un antet Authorization.

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

Cerere HTTP pentru trimiterea SMS din C#

Pentru a trimite SMS-ul, 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.

POST /api?action=sendmsg HTTP/1.1
Connection: Keep-Alive
Content-Length: 336
Content-Type: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509

{
  "messages": [
    {
      "message_id": "b570dbae-3a05-456d-9dad-a02161b16f1c",
      "to_address": "+36201111111",
      "text": "Hello, World!",
      "create_date": "2021-06-11 11:20:02",
      "valid_until": "2021-06-18 11:20:02",
      "time_to_send": "2021-06-11 11:20:02",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    }
  ]
}

Răspuns 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ă cererea de trimitere a SMS-ului a fost reușită sau nu. De asemenea, va returna o structură codificată în JSON pentru a vă 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: Fri, 11 Jun 2021 11:17:49 GMT
Server: 10/10.3.116
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": "b570dbae-3a05-456d-9dad-a02161b16f1c",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello, World!",
        "create_date": "2021-06-11 11:20:02",
        "valid_until": "2021-06-18 11:20:02",
        "time_to_send": "2021-06-11 11:20:02",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}

Conectați-vă gateway-ul SMS la rețeaua mobilă și creați un cont de utilizator HTTP API

Presupunem că ați instalat deja Ozeki SMS Gateway și că ați conectat-o la rețeaua mobilă. Pentru a putea trimite SMS la un telefon mobil din C#, trebuie să configurați un cont de utilizator HTTP API în Ozeki SMS Gateway.

Creați un nou utilizator (Tutorial video)

Acest videoclip vă prezintă cum să configurați un nou cont de utilizator HTTP API. Acesta va începe cu pagina de start a Ozeki SMS Gateway și se va încheia cu fila Evenimente a noului utilizator. Videoclipul vă va arăta cum să creați și să configurați noul utilizator. Marele lucru despre acest videoclip este că durează doar 30 de secunde, dar conține toate informațiile necesare pentru a crea un nou utilizator HTTP API.

Video 1 - Cum să configurați un cont de utilizator HTTP API (Tutorial video)

Cum să trimiteți SMS din C# folosind API-ul SMS C# (Tutorial video)

Acest videoclip vă arată cum să descărcați fișierul SendSms.cs.zip de pe această pagină și cum să descărcați conținutul acestuia în Visual Studio. Dacă urmăriți videoclipul, veți observa că conținutul arhivei SendSms.cs este plasat pe desktop-ul Windows. De asemenea, veți vedea că dăm dublu clic pe fișierul de soluție SendSms.sln pentru a deschide soluția. Visual Studio va afișa câteva avertismente deoarece fișierul provine de pe internet. Faceți clic pe OK pentru a evita aceste avertismente.

Video 2 - Cum să descărcați și să rulați proiectul exemplu (Tutorial video)

Exemplu C# SMS: SendSms.sln

Codul exemplu de mai jos face parte din Soluția Visual Studio SendSms.sln. O soluție Visual Studio poate conține mai multe proiecte și mai multe fișiere. În această soluție există un singur proiect: SendSms.csproj și un singur fișier: Program.cs.

Figura 2 - SendSms.sln

Cum să verificați dacă SMS-ul a fost acceptat de utilizatorul HTTP (Tutorial video)

După ce SMS-ul a fost trimis, este o idee bună să verificați gateway-ul dvs. SMS, pentru a vedea ce a primit. Puteți verifica jurnalul deschizând detaliile utilizatorului HTTP din consola de management Ozeki SMS Gateway. Următorul videoclip vă arată ce să căutați. Videoclipul va începe cu codul deschis și se va încheia cu detaliile mesajului trimis. Veți învăța cum să lansați proiectul, cum arată proiectul în timpul rulării și cum arată fișierul jurnal după aceea. Videoclipul durează doar 42 de secunde și este ușor de înțeles. Nu veți avea probleme să-l urmăriți.

Video 3 - Cum să trimiteți SMS cu codul C# de mai sus (Tutorial video)

Cum să verifici dacă SMS-ul a fost trimis către rețeaua mobilă

Pasul final în verificarea procedurii este să consulti jurnalele de conectare la rețeaua mobilă. Poate fi necesar să activezi înregistrarea în configurația conexiunii înainte de a trimite mesajul pentru a vedea jurnalele. Dacă înregistrarea este activată, vei vedea numărul de telefon și textul mesajului pe care l-ai trimis.

Testează dacă cererea a fost acceptată (Tutorial video)

În următorul videoclip, vei vedea cum să verifici dacă clientul SMPP a reușit să trimită mesajul tău. Vei învăța cum să deschizi fila de evenimente a utilizatorului SMPP și la ce să te uiți. Videoclipul durează doar 18 secunde, dar va fi foarte util.

Video 4 - Cum să testezi dacă cererea a fost acceptată de clientul SMPP (Tutorial video)

SMS primit pe telefon (Tutorial video)

În următorul videoclip, vei vedea cum arată un mesaj primit care a fost trimis prin Ozeki SMS Gateway. Videoclipul începe cu ecranul principal al unui telefon Android și se încheie cu mesajul deschis. Durează doar 18 secunde și poți vedea întregul proces de primire a unui mesaj.

Video 5 - Cum arată un mesaj primit de la Ozeki SMS Gateway (Tutorial video)

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

Rezumat

Ghidul de mai sus a explicat pașii de trimitere a SMS-urilor din C#. După cum s-a putut observa, Ozeki îți oferă toate instrumentele necesare pentru livrarea mesajelor, așa că, dacă pașii au fost urmați cu atenție, trimiterea mesajelor din C# nu mai este o problemă. Ozeki SMS Gateway joacă un rol enorm în livrare, fără acest program nu ai putea ajunge la utilizatorii mobili. Este important de menționat că Ozeki SMS Gateway funcționează în orice țară, astfel încât mesajele pot fi trimise internațional cu această soluție.

Nu te opri aici, navighează pe pagina de tutoriale Ozeki și află mai multe despre primirea SMS-urilor în C#.

Următorul lucru pe care trebuie să-l faci este să descărci Ozeki SMS Gateway și să începi lucrul!

More information