Ako poslať viacero 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 odoslaní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 odošle túto SMS na príjemcove telefónne číslo a vráti HTTP 200 OK odpoveď na vašu požiadavku.
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žiť a upraviť v ktoromkoľvek z vašich projektov.
SendSMS.csusing Ozeki.Libs.Rest; using System; namespace SendMultipleSms { 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 msg1 = new Message() { ToAddress = "+36201111111", Text = "Hello, World 1" }; var msg2 = new Message() { ToAddress = "+362222222", Text = "Hello, World 2" }; var msg3 = new Message() { ToAddress = "+363333333", Text = "Hello, World 3" }; var api = new MessageApi(configuration); var result = api.Send(new Message[]{ msg1, msg2, msg3 }); 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 akejkoľ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 do projektu musíte vložiť direktívu using Ozeki.Libs.Rest; do hlavičkovej časti 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ď prostredníctvom bezdrôtového pripojenia alebo cez internet.
Stiahnuť SendSMS.cs
Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: SendMultipleSms.cs.zip (34.5Kb)
Súbor SendMultipleSms.cs obsahuje knižnicu Ozeki.Libs.Rest, ktorá vám poskytuje všetky potrebné nástroje na odosielanie a prijímanie SMS správ. Nájdete tu aj projekt SendMultipleSms v zip súbore, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako odoslať SMS. Tento ukážkový kód je uvedený nižšie.
Na odoslanie viacerých SMS z C#:
- Nainštalujte Visual Studio Community
- Stiahnite súbor Send-multiple-SMS.cs.zip
- Extrahujte .zip súbor z priečinka Stiahnuté
- Otvorte súbor SendMultipleSms.sln v Visual Studio
- Spustite Ozeki SMS Gateway
- Vytvorte HTTP API používateľa v Ozeki
- Spustite kód Program.cs v Visual Studio na odoslanie testovacích SMS správ
- Skontrolujte priečinok Odoslané v Ozeki SMS Gateway
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, že vaše pripojenie k mobilnej sieti funguje. Posledným krokom na prípravu vášho prostredia je vytvorenie HTTP SMS API používateľského účtu. Vytvorte používateľa s používateľským 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ša C# aplikácia musieť odoslať HTTP požiadavku na SMS bránu. API URL je uvedené 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
HTTP autentifikácia na odosielanie SMS z C#
Na autentifikáciu C# SMS klienta je potrebné odoslať používateľské meno a heslo ako reťazec zakódovaný v base64 na server v HTTP požiadavke. Používa sa formát: base64(používateľské meno+":"+heslo). V C# môžete na toto kódovanie použiť nasledujúci kód:
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 reťazec zakódovaný v base64: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie
HTTP hlavička požiadavky na odoslanie SMS z C#Na odoslanie SMS správ je potrebné zahrnúť nasledujúce riadky ako hlavičky do HTTP požiadavky. Upozorňujeme, že obsahujeme hlavičku typu obsahu a autorizačnú hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Na odoslanie SMS správ vaša C# aplikácia odošle HTTP požiadavku podobnú nižšie uvedenej. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť tela HTTP. 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: 979 Content-Type: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9511 { "messages": [ { "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "to_address": "+36201111111", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "to_address": "+362222222", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [] }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "to_address": "+363333333", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "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. Tiež vráti štruktúru 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 13:06:37 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Správy zaradené do fronty na odoslanie.", "data": { "total_count": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello, World 1", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12", "from_station": "%", "to_address": "+362222222", "to_station": "%", "text": "Hello, World 2", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9", "from_station": "%", "to_address": "+363333333", "to_station": "%", "text": "Hello, World 3", "create_date": "2021-06-11 13:08:26", "valid_until": "2021-06-18 13:08:26", "time_to_send": "2021-06-11 13:08:26", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Ako stiahnuť projekt SendMultipleSMS.sln (Video návod)
V nasledujúcom videu sa dozviete, ako môžete použiť projekt SendMultipleSMS.sln v jazyku C#. Video začne na strane na stiahnutie a prevedie vás až k otvorenej panelu editora kódu. Dozviete sa, ako stiahnuť a otvoriť súbor s kódom. Video je dlhé len 54 sekúnd, ale obsahuje všetky potrebné informácie, ktoré potrebujete na úspešné použitie príkladového súboru s kódom.
Príkladový kód nižšie je súčasťou SendMultipleSms.sln riešenia Visual Studio. Riešenie Visual Studio môže obsahovať viacero projektov a viacero súborov. V tomto riešení je len jeden projekt: SendMultipleSms.csproj, a jeden súbor: Program.cs.
V nasledujúcom klipu uvidíte, ako môžete spustiť kód SendMultipleSMS.cs v jazyku C#. Video začne s otvoreným kódom a prevedie vás až k záložke udalostí so záznamom odoslanej správy. Uvidíte, ako spustiť kód a čo sa stane, ak sa kód vykoná. Video je o niečo kratšie ako minúta, ale obsahuje všetky informácie, ktoré sú potrebné na spustenie projektu.
Spustenie príkladu SMS v jazyku C# v systéme Windows
Keď použijete Windows na spustenie tohto príkladu SMS napísaného v jazyku C#, všimnete si, že dostanete o niečo lepší výkon, ako keď ho spustíte v systéme Linux. Aby ste pochopili, prečo sa to deje, musíte mať na pamäti, že C# používa na vykonávanie kódu framework .NET. Je to preto, lebo implementácia .NET v systéme Windows je optimalizovaná na výkon, zatiaľ čo mono, implementácia .NET v systéme Linux, má v tejto oblasti ešte nejaké rezervy.
ZáverTento článok ukázal kroky na odoslanie viacerých SMS v jednej požiadavke z jazyka C#. S týmito znalosťami a poskytnutými nástrojmi by ste mali byť schopní osloviť viacerých zákazníkov jedným kódom. Ozeki SMS Gateway zohráva dôležitú úlohu v tomto procese, pretože tento program organizuje doručovanie správ. Ozeki SMS Gateway pracuje s vysokou kvalitou a výkonom, čo vám umožňuje odoslať až 1000 SMS za sekundu.
Pokračujte v učení na stránkach s návodmi Ozeki, kde si môžete prečítať o témach ako plánovanie SMS a mazanie v jazyku C#.
Teraz už vám stačí len stiahnuť Ozeki SMS Gateway a začať pracovať!
More information
- How to send SMS from C#
- How to send multiple SMS from C#
- How to send scheduled SMS from C#
- How to receive SMS in C#
- How to delete SMS using C#
- Github: C# SMS API
- SMS nuget library for C#