Ako poslať SMS z C#
Najjednoduchší spôsob, ako poslať SMS z C#, je použiť vstavané HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete posielať SMS správy vydaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu formátovanú v json formáte. SMS brána pošle túto SMS príjemcovi a vráti HTTP 200 OK odpoveď na vašu požiadavku. (Obrázok 1)
Ukážka C# kódu pre SMS nižšie demonštruje, ako môžete posielať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím knižnice C# Ozeki.Libs.Rest. Táto knižnica je poskytovaná bezplatne a môžete ju používať a upravovať v akomkoľvek z vašich projektov.
SendSMS.csusing 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(); } } }
Ako použiť C# príklad pre SMS:
Tento C# príklad pre SMS môže byť použitý v akomkoľvek .NET alebo .NET core aplikácii. Na použitie je potrebné pridať Ozeki.Libs.Rest.dll ako referenciu do vášho projektu. Po pridaní referencie projektu musíte vložiť direktívu using Ozeki.Libs.Rest; do hlavičky vášho C# zdrojového kódu. To vám umožní používať triedy poskytované knižnicou Ozeki.Libs.Rest. Môžete použiť triedu Message na vytvorenie SMS. Môžete použiť triedu MessageApi na odoslanie SMS na SMS bránu. SMS brána prepošle vašu správu do mobilnej siete buď cez bezdrôtové pripojenie alebo cez internet.
Stiahnuť SendSMS.cs
Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: SendSms.cs.zip (33.3Kb)
Súbor SendSms.cs.zip obsahuje knižnicu Ozeki.Libs.Rest, ktorá vám poskytuje všetky potrebné nástroje na odosielanie a prijímanie SMS správ. V zip súbore nájdete aj projekt SendSms, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako poslať SMS. Tento ukážkový kód je uvedený nižšie. (Obrázok 2)
Na odoslanie SMS z C#:
- Nainštalujte HTTP API používateľa
- Povoľte Log komunikácie na karte Pokročilé
- Nastavte Visual Studio
- Stiahnite a rozbaľte súbor SendSms.cs.zip
- Otvorte súbor SendSms.sln v Visual Studio
- Spustite aplikáciu Ozeki SMS Gateway
- Spustite kód Program.cs v Visual Studio
- Skontrolujte logy, či bola SMS odoslaná
Aby ste mohli posielať SMS z C#, najprv musíte nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, kde vyvíjate svoj C# kód v Visual Studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z Ozeki GUI na overenie, či vaše pripojenie k mobilnej sieti funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie HTTP SMS API používateľského účtu. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.
Po nastavení prostredia môžete spustiť svoj C# kód.
HTTP API URL na odoslanie SMS z C#Na odoslanie SMS z C# bude vaše C# musieť vydať HTTP požiadavku na SMS bránu. API URL je zobrazené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaný na rovnakom počítači, kde beží C# SMS aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaný na inom počítači, mala by to byť IP adresa toho počítača.
http://127.0.0.1:9509/api?action=rest
Na autentifikáciu C# SMS klienta musíte poslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Použitý formát je: base64(používateľské meno+":"+heslo). V C# môžete použiť nasledujúci kód na toto kódovanie:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci base64 kódovaný reťazec: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie
HTTP hlavička požiadavky na odoslanie SMS z C#Na odoslanie SMS správ musíte zahrnúť nasledujúce riadky ako hlavičky do HTTP požiadavky. Upozorňujeme, že zaraďujeme content type a Authorization hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požiadavka na odoslanie SMS z C#
Na odoslanie SMS bude vaša aplikácia v C# posielať HTTP požiadavku podobnú ako je uvedená nižšie. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť HTTP tela. Telo HTTP je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text správy.
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": [] } ] }
Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Bude tiež vrátená štruktúra zakódovaná v JSON, ktorá poskytuje užitočné informácie o odoslaní správy.
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" } ] } }
Predpokladáme, že ste už nainštalovali Ozeki SMS Gateway, a že ste pripojili ju k mobilnej sieti. Aby ste mohli odosielať SMS na mobilné telefóny z C#, musíte nastaviť účet HTTP API používateľa v Ozeki SMS Gateway.
Vytvorte nového používateľa (Video návod)Toto video vám ukáže, ako nastaviť nový účet HTTP API používateľa. Začína na domovskej stránke Ozeki SMS Gateway a končí na karte Udalosti nového používateľa. Video vám ukáže, ako vytvoriť a nakonfigurovať nového používateľa. Skvelé na tomto videu je, že trvá len 30 sekúnd, ale obsahuje všetky informácie, ktoré potrebujete na vytvorenie nového HTTP API používateľa.
Ako odoslať SMS z C# pomocou C# SMS API (Video návod)
Toto video vám ukáže, ako stiahnuť súbor SendSms.cs.zip z tejto stránky a ako stiahnuť jeho obsah v Visual Studio. Ak sledujete video, všimnete si, že obsah SendSms.cs zip je umiestnený na pracovnej ploche Windows. Uvidíte tiež, že dvakrát klikneme na súbor SendSms.sln, aby sme otvorili riešenie. Visual Studio zobrazí niektoré varovania, pretože súbor pochádza z internetu. Jednoducho kliknite na OK, aby ste tieto varovania ignorovali.
Príklad SMS v C#: SendSms.sln
Príkladový kód nižšie je súčasťou riešenia Visual Studio SendSms.sln. Riešenie Visual Studio môže obsahovať viacero projektov a viacero súborov. V tomto riešení je len jeden projekt: SendSms.csproj, a jeden súbor: Program.cs.
Po odoslaní SMS je dobré skontrolovať vašu SMS bránu, aby ste videli, čo prijala. Protokol môžete skontrolovať otvorením detailov HTTP používateľa v konzole správy Ozeki SMS Gateway. Nasledujúce video vám ukáže, čo hľadať. Video začína otvoreným kódom a končí detailami odoslanej správy. Dozviete sa, ako spustiť projekt, ako projekt vyzerá počas behu a ako vyzerá protokolový súbor po jeho spustení. Video trvá len 42 sekúnd a je ľahko pochopiteľné. Nebudete mať problém ho sledovať.
Ako skontrolovať, že SMS bola odoslaná do mobilnej siete
Posledným krokom pri overovaní postupu je pozrieť sa na záznamy mobilného sieťového pripojenia. Možno budete musieť pred odoslaním správy zapnúť logovanie v konfigurácii pripojenia, aby ste videli záznamy. Ak je logovanie povolené, uvidíte telefónne číslo a text správy, ktorú ste odoslali.
Testovanie, či bola požiadavka prijatá (Video návod)V nasledujúcom videu uvidíte, ako skontrolovať, či bol SMPP klient úspešný pri odosielaní vašej správy. Dozviete sa, ako otvoriť kartu udalostí používateľa SMPP a na čo si dať pozor. Video je dlhé len 18 sekúnd, ale bude veľmi užitočné.
SMS prijatá na telefóne (Video návod)
V nasledujúcom videu uvidíte, ako vyzerá prichádzajúca správa odoslaná z Ozeki SMS Gateway. Začína sa domovskou obrazovkou android telefónu a končí otvorenou správou. Video je dlhé len 18 sekúnd a môžete vidieť celý proces prijatia správy.
Spustenie C# SMS príkladu na Windows
Keď použijete Windows na spustenie tohto SMS príkladu napísaného v C#, všimnete si, že dostanete o niečo lepší výkon ako pri spustení na Linuxe. Aby ste pochopili, prečo sa to deje, musíte mať na pamäti, že C# používa na vykonávanie kódu .NET framework. Je to preto, lebo implementácia .NET na Windows je optimalizovaná pre výkon, zatiaľ čo mono, implementácia .NET na Linuxe, v tejto oblasti ešte niekde zaostáva.
ZhrnutieVyššie uvedený sprievodca vysvetlil kroky odosielania SMS z C#. Ako bolo vidieť, Ozeki vám poskytuje všetky potrebné nástroje na doručenie správ, takže ak boli kroky dôsledne dodržané, odosielanie správ z C# už nie je problém. Ozeki SMS Gateway zohráva obrovskú úlohu pri doručovaní, bez tohto programu by ste sa k mobilným používateľom nedostali. Dôležité je poznamenať, že Ozeki SMS Gateway funguje v každej krajine, takže správy je možné s týmto riešením odosielať medzinárodne.
Nezastavujte sa tu, prehliadnite si stránku s návodmi Ozeki a dozviete sa viac o prijímaní SMS v C#.
Vašou ďalšou úlohou je stiahnuť si Ozeki SMS Gateway a nechať prácu začať!
More information