Kako poslati SMS iz C#

Najjednostavniji način za slanje SMS-a iz C# je korištenje ugrađenog HTTP/Rest SMS API-ja Ozeki SMS Gatewaya. Kada koristite ovaj API, slat ćete SMS poruke slanjem HTTP Post zahtjeva SMS gatewayu. HTTP Post zahtjev će sadržavati poruku formatiranu u json formatu. SMS gateway će poslati ovaj SMS na telefonski broj primatelja i vratit će HTTP 200 OK odgovor na vaš zahtjev. (Slika 1)

kako poslati sms iz c
Slika 1 - Kako poslati SMS iz C#

C# kod za slanje SMS-a na mobilni telefon

Primjer C# SMS koda u nastavku pokazuje kako možete poslati SMS koristeći http rest SMS API Ozeki SMS Gatewaya s bibliotekom Ozeki.Libs.Rest za C#. Ova biblioteka vam je dostupna besplatno i možete je koristiti i mijenjati u bilo kojem od vaših projekata.

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 = "Hello, World!"
            };

            var api = new MessageApi(configuration);

            var result = api.Send(msg);

            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
}

Kako koristiti C# SMS primjer:

Ovaj C# SMS primjer 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š projekt. Nakon dodavanja reference, morate staviti direktivu using Ozeki.Libs.Rest; u zaglavlje vašeg C# izvornog koda. To će vam omogućiti korištenje klasa koje pruža biblioteka Ozeki.Libs.Rest. Možete koristiti klasu Message za kreiranje SMS-a. Možete koristiti klasu MessageApi za slanje SMS-a SMS gatewayu. SMS gateway će proslijediti vašu poruku mobilnoj mreži putem bežične veze ili putem interneta.

Preuzmite SendSMS.cs

Izvorni kod objašnjen u ovom članku može se besplatno preuzeti, koristiti i mijenjati.
Preuzimanje: SendSms.cs.zip (33.3Kb)

Što se nalazi u SendSms.cs.zip datoteci?

Datoteka SendSms.cs.zip sadrži biblioteku Ozeki.Libs.Rest, koja vam daje sve potrebne alate za slanje i primanje SMS poruka. Također ćete pronaći projekt SendSms u zip datoteci, koji sadrži primjer koda koji pokazuje kako poslati SMS. Ovaj primjer koda je naveden u nastavku. (Slika 2)

send sms cs direktorij
Slika 2 - Što se nalazi unutar SendSms.cs.zip

Kako poslati SMS iz C# (Jednostavne upute)

Za slanje SMS-a iz C#:

  1. Instalirajte HTTP API korisnika
  2. Omogućite Log komunikacijske događaje na kartici Napredno
  3. Postavite Visual Studio
  4. Preuzmite i raspakirajte datoteku SendSms.cs.zip
  5. Otvorite datoteku SendSms.sln u Visual Studiju
  6. Pokrenite Ozeki SMS Gateway aplikaciju
  7. Pokrenite Program.cs C# kod u Visual Studiju
  8. Provjerite zapisnike da vidite je li SMS poslan

Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli slati SMS iz C#, prvo morate instalirati Ozeki SMS Gateway. SMS gateway se može instalirati na istom računalu na kojem razvijate svoj C# kod u Visual Studiju. Nakon instalacije, sljedeći korak je povezivanje Ozeki SMS Gatewaya s mobilnom mrežom. Možete poslati testni SMS iz Ozeki GUI-ja kako biste potvrdili da vaša mobilna mrežna veza radi. Konačni korak za pripremu vašeg okruženja je kreiranje HTTP SMS API korisničkog računa. Kreirajte korisnika s korisničkim imenom "http_user" i lozinkom "qwe123" kako bi primjer radio bez izmjena.

Nakon postavljanja okruženja, možete pokrenuti svoj C# kod.

HTTP API URL za slanje SMS-a iz C#

Za slanje SMS-a iz C#, vaš C# će morati poslati HTTP zahtjev SMS gatewayu. API URL je prikazan u nastavku. Imajte na umu da IP adresa (127.0.0.1) treba biti zamijenjena IP adresom vašeg SMS gatewaya. Ako je Ozeki SMS Gateway instaliran na istom računalu na kojem se pokreće C# SMS aplikacija, ovo može biti 127.0.0.1. Ako je instaliran na drugom računalu, treba biti IP adresa tog računala.

http://127.0.0.1:9509/api?action=rest

HTTP autentifikacija za slanje SMS-a iz C#

Za autentifikaciju C# SMS klijenta, morate poslati korisničko ime i lozinku u base64 kodiranom stringu na poslužitelj u HTTP zahtjevu. Korišteni format je: base64(korisničko_ime+":"+lozinka). U C# možete koristiti sljedeći kod za ovo kodiranje:

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

Na primjer, ako kodirate korisničko ime 'http_user' i lozinku 'qwe123', dobit ćete sljedeći base64 kodirani string: aHR0cF91c2VyOnF3ZTEyMw==. Za slanje

HTTP zaglavlje zahtjeva za slanje SMS-a iz C#

Za slanje SMS poruka, potrebno je uključiti sljedeće retke kao zaglavlja u HTTP zahtjev. Imajte na umu da uključujemo tip sadržaja i zaglavlje za autorizaciju.

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

HTTP zahtjev za slanje SMS-a iz C#

Za slanje SMS-a, vaša C# aplikacija će poslati HTTP zahtjev sličan onome ispod. Imajte na umu da ovaj zahtjev sadrži dio HTTP zaglavlja i dio HTTP tijela. HTTP tijelo je JSON kodirani niz podataka. Sadrži broj primatelja i tekst poruke.

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": "Pozdrav, svijete!",
      "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": []
    }
  ]
}

HTTP odgovor primljen od C# SMS primjera

Nakon što SMS gateway primi ovaj zahtjev, generirat će HTTP odgovor. HTTP odgovor će sadržavati statusni kod, kako bi naznačio je li zahtjev za slanje SMS-a bio uspješan ili ne. Također će vratiti JSON kodiranu strukturu koja vam pruža 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: Fri, 11 Jun 2021 11:17:49 GMT
Server: 10/10.3.116
Transfer-Encoding: chunked

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "response_msg": "Poruke su u redu čekanja za isporuku.",
  "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": "Pozdrav, svijete!",
        "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"
      }
    ]
  }
}

Povežite svoj SMS gateway s mobilnom mrežom i kreirajte HTTP API korisnički račun

Pretpostavljamo da ste već instalirali Ozeki SMS Gateway, i da ste ga povezali s mobilnom mrežom. Kako biste mogli slati SMS na mobilni telefon iz C#-a, potrebno je postaviti HTTP API korisnički račun u Ozeki SMS Gatewayu.

Kreirajte novog korisnika (Video tutorial)

Ovaj video prikazuje kako postaviti novi HTTP API korisnički račun. Počet će s početnom stranicom Ozeki SMS Gatewaya i završit će s karticom Događaji novog korisnika. Video će vam pokazati kako kreirati i konfigurirati vašeg novog korisnika. Sjajna stvar u vezi ovog videa je da traje samo 30 sekundi, ali sadrži sve informacije koje su vam potrebne za kreiranje novog HTTP API korisnika.

Video 1 - Kako postaviti HTTP API korisnički račun (Video tutorial)

Kako poslati SMS iz C#-a koristeći C# SMS API (Video tutorial)

Ovaj video pokazuje kako preuzeti datoteku SendSms.cs.zip s ove stranice i kako preuzeti njezin sadržaj u Visual Studio. Ako pogledate video, primijetit ćete da je sadržaj SendSms.cs zipa smješten na radnu površinu Windowsa. Također ćete vidjeti da dvoklikom na SendSms.sln datoteku otvaramo rješenje. Visual Studio će prikazati neka upozorenja jer datoteka dolazi s weba. Jednostavno kliknite OK kako biste izbjegli ta upozorenja.

Video 2 - Kako preuzeti i pokrenuti primjer projekta (Video tutorial)

C# SMS primjer: SendSms.sln

Primjer koda u nastavku dio je SendSms.sln Visual Studio rješenja. Visual studio rješenje može sadržavati više projekata i više datoteka. U ovom rješenju postoji samo jedan projekt: SendSms.csproj, i jedna datoteka: Program.cs.

Slika 2 - SendSms.sln

Kako provjeriti je li SMS prihvaćen od strane HTTP korisnika (Video vodič)

Nakon što je SMS poslan, dobro je provjeriti svoj SMS pristupnik, kako biste vidjeli što je primio. Dnevnik možete provjeriti otvaranjem detalja HTTP korisnika iz upravljačke konzole Ozeki SMS pristupnika. Sljedeći video pokazuje što trebate tražiti. Video će započeti s otvorenim kodom i završiti s detaljima poslane poruke. Naučit ćete kako pokrenuti projekt, kako projekt izgleda tijekom rada i kako izgleda datoteka dnevnika nakon toga. Video traje samo 42 sekunde i lako ga je razumjeti. Nećete imati problema s praćenjem.

Video 3 - Kako poslati SMS s gore navedenim C# kodom (Video vodič)

Kako provjeriti je li SMS poslan na mobilnu mrežu

Završni korak u provjeri postupka je pogledati dnevnike veze s mobilnom mrežom. Možda ćete morati uključiti bilježenje u konfiguraciji veze prije slanja poruke kako biste vidjeli dnevnike. Ako je bilježenje uključeno, vidjet ćete broj telefona i tekst poruke koju ste poslali.

Testirajte je li zahtjev prihvaćen (Video vodič)

U sljedećem videu vidjet ćete kako provjeriti je li SMPP klijent uspješno poslao vašu poruku. Naučit ćete kako otvoriti karticu događaja SMPP korisnika i što trebate tražiti. Video traje samo 18 sekundi, ali će vam biti vrlo koristan.

Video 4 - Kako testirati je li zahtjev prihvaćen od strane SMPP klijenta (Video vodič)

SMS primljen na telefonu (Video vodič)

U sljedećem videu vidjet ćete kako izgleda dolazna poruka poslana iz Ozeki SMS pristupnika. Počet će s početnim zaslonom android telefona i završiti s otvorenom porukom. Traje samo 18 sekundi i možete vidjeti cijeli proces primanja poruke.

Video 5 - Kako izgleda dolazna poruka iz Ozeki SMS pristupnika (Video vodič)

Pokretanje C# sms primjera na Windowsu

Kada koristite Windows za pokretanje ovog sms primjera napisanog u C#, primijetit ćete da dobivate nešto bolju performansu nego kada ga pokrećete na Linuxu. Da biste razumjeli zašto se to događa, morate imati na umu da C# koristi .NET okvir za izvršavanje koda. To je zato što je .NET implementacija na Windowsu optimizirana za performanse, dok mono, .NET implementacija na Linuxu, još uvijek treba nadoknaditi u tom području.

Sažetak

Gornji vodič objasnio je korake slanja SMS-a iz C#. Kao što se moglo vidjeti, Ozeki vam daje sve potrebne alate u isporuci poruka, pa ako su koraci pažljivo slijedeni, slanje poruka iz C# više nije problem. Ozeki SMS pristupnik igra ogromnu ulogu u isporuci, bez ovog programa ne biste mogli doći do mobilnih korisnika. Važno je napomenuti da Ozeki SMS pristupnik radi u bilo kojoj zemlji, tako da se poruke mogu slati internacionalno s ovim rješenjem.

Ne završavajte čitanje ovdje, pregledajte Ozekijevu stranicu s vodičima i naučite o primanju SMS-ova u C#.

Sljedeće što trebate učiniti je preuzeti Ozeki SMS pristupnik i neka posao počne!

More information