Kako poslati SMS iz 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. (Slika 1)

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

C# kod za slanje SMS-a na mobilni telefon

C# SMS primer koda ispod demonstrira kako možete poslati 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.

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 = "Zdravo, svete!"
            };

            var api = new MessageApi(configuration);

            var result = api.Send(msg);

            Console.WriteLine(result);
            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, 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 Message za kreiranje SMS-a. Možete koristiti klasu MessageApi da pošaljete SMS ka SMS gateway-u. SMS gateway će proslediti vašu poruku mobilnoj mreži bilo preko bežične veze ili preko interneta.

Preuzmite SendSMS.cs

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

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

SendSms.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 SendSms projekat u zip fajlu, koji sadrži primer koda koji pokazuje kako poslati SMS. Ovaj primer koda je prikazan ispod. (Slika 2)

send sms cs direktorijum
Slika 2 - Šta se nalazi unutar SendSms.cs.zip

Kako poslati SMS iz C# (Jednostavne smernice)

Da biste poslali SMS iz C#:

  1. Instalirajte HTTP API korisnika
  2. Omogućite Log komunikacione događaje na Advanced tabu
  3. Podesite Visual Studio
  4. Preuzmite pa raspakujte SendSms.cs.zip fajl
  5. Otvortie SendSms.sln fajl u Visual Studio-u
  6. Pokrenite Ozeki SMS Gateway aplikaciju
  7. Pokrenite Program.cs C# kod u Visual Studio-u
  8. Proverite logove da vidite da li je SMS poslat
Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli da šaljete SMS iz C#, prvo morate da instalirate 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 potvrdite da vaša mobilna mrežna veza radi. Poslednji korak za pripremu vašeg okruženja je da kreirate HTTP SMS API korisnički nalog. Kreirajte korisnika sa korisničkim imenom "http_user", i lozinkom "qwe123" da biste omogućili da primer radi bez modifikacija.

Nakon što je okruženje postavljeno, možete pokrenuti svoj C# kod.

HTTP API URL za slanje SMS-a iz C#

Da biste poslali SMS iz C#, vaš C# ć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 slanje SMS-a iz 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 sledeći base64 kodirani string: aHR0cF91c2VyOnF3ZTEyMw==. Da biste poslali

HTTP zaglavlje zahteva za slanje SMS-a iz C#

Da biste poslali SMS poruke, morate uključiti sledeće linije kao zaglavlja u HTTP zahtevu. Imajte na umu da uključujemo content type i Authorization zaglavlje.

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

HTTP захтев за слање SMS-а из C#

Да бисте послали SMS, ваша C# апликација ће послати HTTP захтев сличан оном испод. Имајте на уму да овај захтев садржи део HTTP заглавља и део HTTP тела. HTTP тело је JSON кодирани низ података. Садржи број примаоца и текст поруке.

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": []
    }
  ]
}
HTTP одговор примљен од стране C# SMS примера

Након што SMS gateway прими овај захтев, генерисаће HTTP одговор. HTTP одговор ће садржати статусни код, који указује да ли је захтев за слање SMS-а био успешан или не. Такође ће вратити JSON кодирану структуру која вам пружа корисне детаље о слању поруке.

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"
      }
    ]
  }
}
Повежите ваш SMS gateway са мобилном мрежом и направите HTTP API кориснички налог

Претпостављамо да сте већ инсталирали Ozeki SMS Gateway, и да сте га повезали са мобилном мрежом. Да бисте могли да шаљете SMS на мобилни телефон из C#, потребно је да подесите HTTP API кориснички налог у Ozeki SMS Gateway-у.

Направите новог корисника (Видео туторијал)

Овај видео вам показује како да подесите нови HTTP API кориснички налог. Почиње са почетном страницом Ozeki SMS Gateway-а и завршава се са картицом "Events" новог корисника. Видео ће вам показати како да креирате и конфигуришете ваш нови кориснички налог. Одлична ствар код овог видеа је то што траје само 30 секунди, али садржи све информације које су вам потребне да креирате новог HTTP API корисника.

Видео 1 - Како да подесите HTTP API кориснички налог (Видео туторијал)

Како послати SMS из C# користећи C# SMS API (Видео туторијал)

Овај видео вам показује како да преузмете SendSms.cs.zip фајл са ове странице, и како да преузмете његов садржај у Visual Studio. Ако погледате видео, приметићете да је садржај SendSms.cs zip-а смештен на Windows радну површину. Такође ћете видети да дуплим кликом на SendSms.sln фајл решења отварамо решење. Visual Studio ће показати нека упозорења јер фајл долази са интернета. Једноставно кликните OK да бисте избегли ова упозорења.

Видео 2 - Како да преузмете и покренете пример пројекта (Видео туторијал)

C# SMS пример: SendSms.sln

Пример кода испод је део SendSms.sln Visual Studio решења. Visual Studio решење може садржати више пројеката и више фајлова. У овом решењу постоји само један пројекат: SendSms.csproj, и један фајл: Program.cs.

Слика 2 - SendSms.sln

Како проверити да ли је SMS прихваћен од стране HTTP корисника (Видео туторијал)

Након што је SMS послат, добра је идеја да проверите ваш SMS gateway, да видите шта је примио. Можете проверити лог отварањем детаља HTTP корисника из Ozeki SMS Gateway управљачке конзоле. Следећи видео вам показује шта да тражите. Видео ће почети са отвореним кодом и завршиће се са детаљима послате поруке. Научићете како да покренете пројекат, како пројекат изгледа током рада и како изгледа лог фајл након тога. Видео траје само 42 секунде и лако је за разумевање. Нећете имати проблема да га пратите.

Видео 3 - Како послати SMS са C# кодом изнад (Видео туторијал)

Kako proveriti da je SMS poslat na mobilnu mrežu

Poslednji korak u proveri procedure je pregled logova mobilne mreže. Možda ćete morati da uključite logovanje u konfiguraciji veze pre slanja poruke kako biste videli logove. Ako je logovanje omogućeno, videćete broj telefona i tekst poruke koju ste poslali.

Proverite da li je zahtev prihvaćen (Video tutorijal)

U sledećem videu videćete kako proveriti da li je SMPP klijent uspešno poslao vašu poruku. Naučićete kako otvoriti karticu događaja za SMPP korisnika i šta tražiti. Video traje samo 18 sekundi ali će vam biti od velike pomoći.

Video 4 - Kako proveriti da li je zahtev prihvaćen od strane SMPP klijenta (Video tutorijal)

SMS primljen na telefonu (Video tutorijal)

U sledećem videu videćete kako izgleda dolazna poruka poslata iz Ozeki SMS Gateway-a. Počeće sa početnim ekranom Android telefona i završiće se otvorenom porukom. Traje samo 18 sekundi i možete videti ceo proces prijema poruke.

Video 5 - Kako izgleda dolazna poruka iz Ozeki SMS Gateway-a (Video tutorijal)

Pokretanje C# SMS primera na Windows-u

Kada koristite Windows za pokretanje ovog SMS primera napisanog u C#, primetićete da dobijate malo bolje performanse nego kada ga pokrenete na Linux-u. 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 Windows-u optimizovana za performanse, dok mono, .NET implementacija na Linux-u, još uvek ima nešto da nadoknadi u ovom polju.

Zaključak

Gore navedeni vodič objasnio je korake slanja SMS-a iz C#-a. Kao što se videlo, Ozeki vam pruža sve potrebne alate za isporuku poruka, tako da, ako su koraci pažljivo praćeni, slanje poruka iz C#-a više nije problem. Ozeki SMS Gateway igra ogromnu ulogu u isporuci, bez ovog programa ne biste mogli da doprete do mobilnih korisnika. Važno je napomenuti da Ozeki SMS Gateway radi u bilo kojoj zemlji, tako da se poruke mogu slati internacionalno sa ovim rešenjem.

Ne završavajte čitanje ovde, pregledajte Ozeki-ovu stranicu sa tutorijalima i saznajte više o prijemu SMS-a u C#-u.

Sledeća stvar koju treba da uradite je da preuzmete Ozeki SMS Gateway i neka počne rad!

More information