Jak poslat SMS z C#
Nejjednodušší způsob, jak poslat SMS z C#, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Když použijete toto API, budete posílat SMS zprávy pomocí HTTP Post požadavku na SMS bránu. HTTP Post požadavek bude obsahovat zprávu ve formátu json. SMS brána pošle tuto SMS příjemci a vrátí HTTP 200 OK odpověď na váš požadavek. (Obrázek 1)
C# kód pro odeslání SMS na mobil
Následující ukázka kódu v C# demonstruje, jak můžete posílat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím knihovny C# Ozeki.Libs.Rest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli svém projektu.
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(); } } }
Jak použít ukázku SMS v C#:
Tato ukázka SMS v C# může být použita v jakékoli .NET nebo .NET core aplikaci. Pro použití musíte přidat Ozeki.Libs.Rest dll jako referenci do vašeho projektu. Po přidání reference do projektu musíte vložit direktivu using Ozeki.Libs.Rest; do hlavičkové části vašeho zdrojového kódu v C#. To vám umožní používat třídy poskytované knihovnou Ozeki.Libs.Rest. Můžete použít třídu Message k vytvoření SMS. Třídu MessageApi můžete použít k odeslání SMS na SMS bránu. SMS brána přepošle vaši zprávu do mobilní sítě buď přes bezdrátové připojení nebo přes internet.
Stáhnout SendSMS.cs
Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendSms.cs.zip (33.3Kb)
Co je v souboru SendSms.cs.zip?
Soubor SendSms.cs.zip obsahuje knihovnu Ozeki.Libs.Rest, která vám poskytuje všechny nástroje potřebné k odesílání a přijímání SMS zpráv. V zipu také najdete projekt SendSms, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže. (Obrázek 2)
Jak poslat SMS z C# (Jednoduchý návod)
Pro odeslání SMS z C#:
- Nainstalujte HTTP API uživatele
- Povolte Logování komunikačních událostí na záložce Pokročilé
- Nastavte Visual Studio
- Stáhněte a rozbalte soubor SendSms.cs.zip
- Otevřete soubor SendSms.sln v Visual Studiu
- Spusťte aplikaci Ozeki SMS Gateway
- Spusťte kód Program.cs v C# v Visual Studiu
- Zkontrolujte logy, zda byla SMS odeslána
Instalace Ozeki SMS Gateway a vytvoření HTTP API uživatele
Abyste mohli posílat SMS z C#, musíte nejprve nainstalovat Ozeki SMS Gateway. SMS brána může být nainstalována na stejném počítači, kde vyvíjíte svůj kód v C# ve Visual Studiu. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací SMS z Ozeki GUI pro ověření, že vaše připojení k mobilní síti funguje. Posledním krokem k přípravě vašeho prostředí je vytvoření HTTP SMS API uživatele. Vytvořte uživatele s uživatelským jménem "http_user" a heslem "qwe123", aby příklad fungoval bez úprav.
Po nastavení prostředí můžete spustit svůj kód v C#.
HTTP API URL pro odesílání SMS z C#
Pro odesílání SMS z C# bude vaše aplikace v C# muset odeslat HTTP požadavek na SMS bránu. API URL je uvedeno níže. Poznámka: IP adresa (127.0.0.1) by měla být nahrazena IP adresou vaší SMS brány. Pokud je Ozeki SMS Gateway nainstalována na stejném počítači, kde běží C# SMS aplikace, může to být 127.0.0.1. Pokud je nainstalována na jiném počítači, měla by to být IP adresa tohoto počítače.
http://127.0.0.1:9509/api?action=rest
HTTP autentizace pro odesílání SMS z C#
Pro autentizaci C# SMS klienta musíte odeslat uživatelské jméno a heslo v base64 kódovaném řetězci na server v HTTP požadavku. Použitý formát je: base64(username+":"+password). V C# můžete použít následující kód pro toto kódování:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
Například, pokud zakódujete uživatelské jméno 'http_user' a heslo 'qwe123', dostanete následující base64 kódovaný řetězec: aHR0cF91c2VyOnF3ZTEyMw==. Pro odeslání
HTTP hlavička požadavku pro odeslání SMS z C#
Pro odeslání SMS zpráv je třeba do HTTP požadavku zahrnout následující řádky jako hlavičky. Všimněte si, že zahrnujeme typ obsahu a autorizační hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požadavek pro odeslání SMS z C#
Pro odeslání SMS bude vaše aplikace v C# odesílat HTTP požadavek podobný tomu níže. Všimněte si, že tento požadavek obsahuje část HTTP hlavičky a část HTTP těla. HTTP tělo je řetězec dat zakódovaný v JSON. Obsahuje číslo příjemce a text zprá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": [] } ] }
HTTP odpověď přijatá v příkladu SMS v C#
Jakmile SMS brána obdrží tento požadavek, vygeneruje HTTP odpověď. HTTP odpověď bude obsahovat stavový kód, který indikuje, zda byl požadavek na odeslání SMS úspěšný nebo ne. Bude také vracet strukturu zakódovanou v JSON, která vám poskytne užitečné informace o odeslání zprá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" } ] } }
Připojte svou SMS bránu k mobilní síti a vytvořte účet HTTP API uživatele
Předpokládáme, že jste již nainstalovali Ozeki SMS Gateway, a že jste připojili ji k mobilní síti. Abyste mohli odesílat SMS na mobilní telefon z C#, musíte nastavit účet HTTP API uživatele v Ozeki SMS Gateway.
Vytvoření nového uživatele (Video návod)
Toto video vám ukáže, jak nastavit nový účet HTTP API uživatele. Začíná na domovské stránce Ozeki SMS Gateway a končí na kartě Události nového uživatele. Video vám ukáže, jak vytvořit a nakonfigurovat nového uživatele. Skvělé na tomto videu je, že trvá pouze 30 sekund, ale obsahuje všechny informace, které potřebujete k vytvoření nového HTTP API uživatele.
Jak odeslat SMS z C# pomocí C# SMS API (Video návod)
Toto video vám ukáže, jak stáhnout soubor SendSms.cs.zip z této stránky a jak stáhnout jeho obsah ve Visual Studiu. Pokud sledujete video, všimnete si, že obsah SendSms.cs zipu je umístěn na plochu Windows. Uvidíte také, že dvakrát klikneme na soubor řešení SendSms.sln, abychom otevřeli řešení. Visual Studio zobrazí některá varování, protože soubor pochází z webu. Stačí kliknout na OK, abyste se těmto varováním vyhnuli.
Příklad SMS v C#: SendSms.sln
Níže uvedený příklad kódu je součástí řešení Visual Studio SendSms.sln. Řešení Visual Studio může obsahovat více projektů a více souborů. V tomto řešení je pouze jeden projekt: SendSms.csproj, a jeden soubor: Program.cs.
Po odeslání SMS je vhodné zkontrolovat vaši SMS bránu, abyste viděli, co přijala. Protokol můžete zkontrolovat otevřením detailů HTTP uživatele z konzole pro správu Ozeki SMS Gateway. Následující video vám ukáže, na co se zaměřit. Video začne otevřeným kódem a skončí detaily odeslané zprávy. Naučíte se, jak spustit projekt, jak projekt vypadá během běhu a jak vypadá soubor protokolu po jeho dokončení. Video je dlouhé pouze 42 sekund a je snadno srozumitelné. Nebudete mít problém jej sledovat.
Jak zkontrolovat, zda byla SMS odeslána do mobilní sítě
Posledním krokem při ověřování postupu je podívat se na protokoly připojení k mobilní síti. Možná budete muset před odesláním zprávy zapnout protokolování v konfiguraci připojení, abyste viděli protokoly. Pokud je protokolování povoleno, uvidíte telefonní číslo a text odeslané zprávy.
Otestujte, zda byla žádost přijata (Video návod)
V následujícím videu uvidíte, jak zkontrolovat, zda byl SMPP klient úspěšný při odesílání vaší zprávy. Naučíte se, jak otevřít kartu událostí SMPP uživatele a na co se zaměřit. Video je dlouhé pouze 18 sekund, ale bude velmi užitečné.
SMS přijatá na telefonu (Video návod)
V následujícím videu uvidíte, jak vypadá příchozí zpráva odeslaná z Ozeki SMS Gateway. Začne domovskou obrazovkou telefonu s Androidem a skončí otevřenou zprávou. Je dlouhé pouze 18 sekund a můžete vidět celý proces přijetí zprávy.
Spuštění příkladu SMS v C# na Windows
Když použijete Windows ke spuštění tohoto příkladu SMS napsaného v C#, zjistíte, že získáte o něco lepší výkon než při spuštění na Linuxu. Abyste pochopili proč k tomu dochází, musíte mít na paměti, že C# používá pro provádění kódu framework .NET. Je to proto, že implementace .NET na Windows je optimalizována pro výkon, zatímco mono, implementace .NET na Linuxu, má v této oblasti ještě co dohánět.
Shrnutí
Výše uvedený průvodce vysvětlil kroky odesílání SMS z C#. Jak bylo vidět, Ozeki vám poskytuje všechny nástroje potřebné pro doručování zpráv, takže pokud byly kroky pečlivě dodrženy, odesílání zpráv z C# již není problém. Ozeki SMS Gateway hraje obrovskou roli v doručování, bez tohoto programu byste se k mobilním uživatelům nedostali. Je důležité si uvědomit, že Ozeki SMS Gateway funguje v jakékoli zemi, takže zprávy lze tímto řešením odesílat mezinárodně.
Nezastavujte se zde, projděte si stránku s návody Ozeki a dozvíte se více o příjmu SMS v C#.
Vaším dalším krokem je stáhnout Ozeki SMS Gateway a začít pracovat!
More information