Jak přijímat SMS v C#
Tento článek poskytuje informace o tom, jak přijímat SMS v C# pomocí Ozeki C# SMS API. Obsahuje ukázkový kód, který můžete použít, a popisuje kroky, které je třeba provést. Dokončení kroků vám zabere přibližně 5 minut. Stručně řečeno, pro přijetí SMS pomocí C# SMS API je třeba se zaregistrovat k události OnMessages received a napsat metodu obsluhy události, která bude zpracovávat příchozí SMS odeslané Ozeki SMS gateway. Čtěte dále a dozvíte se více o tomto postupu!
Proč chcete přijímat SMS v C#?
Existují různé důvody, proč přijímat SMS v C#. Můžete chtít sbírat data ze senzorů nebo od mobilních uživatelů, vytvářet SMS služby, které odesílají odpovědi s informacemi, nebo jednoduše požádat uživatele o potvrzení, že obdrželi SMS.
Předpoklady
- Nainstalovaný Ozeki SMS Gateway
- Microsoft Visual Studio
- Příklad přijímání SMS v C# (OzekiConsole.zip)
Jak přijímat SMS v C# (Rychlé kroky)
Jak přijímat SMS v C#- Stáhněte si příklad přijímání SMS v C#
- Otevřete řešení ve Visual Studiu
- Připojte se k Ozeki SMS Gateway
- Přijměte simulovanou SMS v C#
- Připojte se k mobilní síti
- Přijměte SMS v C#, která byla odeslána z mobilu
- Zkontrolujte protokoly v SMS gateway
- Zkontrolujte zprávu o doručení na vašem mobilu
Ukázkový kód v C# pro přijímání textových zpráv
Níže uvedený ukázkový kód v C# pro SMS popisuje nejdůležitější kroky k vytvoření služby pro přijímání SMS. Ozeki C# SMS API je zdarma. Můžete upravovat knihovnu API, příklady, které jsou k ní přiloženy, a můžete ji použít ve svém projektu a volně ji nebo její deriváty redistribuovat. Následující příklad ukazuje, jak se přihlásit k události OnMessageReceived v C# a jak tuto událost zpracovat. Příklad vypíše příchozí SMS zprávu do konzole.
class Program { static OzxClient Client; static void Main(string[] args) { Client = new OzxClient(); Client.AutoReconnect = true; Client.OnMessageReceived += Client_OnMessageReceived; Client.Connect("127.0.0.1",9580,"testuser","testpass"); } static void Client_OnMessageReceived(object sender, OzxArgs<IOzxMessage> e) { Console.WriteLine("Zpráva přijata: " + e.Item.ToString()); } }
Parametr e.Item je plná OzxMessage. To znamená, že máte všechny detaily SMS zprávy ve vaší události C# SMS API. Tyto detaily zahrnují ID odesílatele SMS, telefonní číslo, na které byla SMS odeslána, text SMS a příslušné časové značky.
Jednou z největších výhod použití Ozeki C# SMS API je, že dostáváte příchozí SMS zprávy okamžitě. Jakmile dorazí do SMS gateway, jsou okamžitě přeposlány do vašeho C# SMS klienta přes navázané TCP/IP spojení. To znamená, že nebudete pociťovat žádné zpoždění.
Pokud váš C# SMS API klient není připojen k SMS gateway, když je SMS přijata, SMS je uložena ve složce doručené pošty SMS gateway. To znamená, že vaše příchozí zprávy nebudou ztraceny, i když je SMS software, který jste napsali pomocí C# SMS API, offline. To je způsobeno tím, že Ozeki SMS Gateway je ve skutečnosti SMS server.
Krok 1 - Stáhněte si Ozeki C# SMS knihovnu
Přejděte na https://ozeki-sms-gateway.com/attachments/5755/OzekiConsole.zip a stáhněte si zip soubor pomocí prohlížeče. Zip soubor se uloží do vaší složky Stažené soubory (Obrázek 2). Můžete otevřít stažený soubor přímo v Průzkumníku Windows. Stažený zip balíček bude obsahovat ukázkový kód, který můžete použít k přijímání SMS v C#.
Krok 2 - Rozbalte C# SMS knihovnu
Rozbalte C# SMS knihovnu kliknutím pravým tlačítkem myši na soubor OzekiConsole.zip (Obrázek 2). Tím se zobrazí kontextové menu. V kontextovém menu vyberte "Extrahovat vše...". Tím se zobrazí dialogové okno "Extrahovat", kde musíte kliknout na Extrahovat.
Klikněte na tlačítko "Extrahovat" v dialogovém okně "Extrahovat vše" (Obrázek 3).
Krok 3 - Otevřete projekt ve Visual Studiu
Otevřete složku OzekiConsole. Tato složka se objeví po extrahování balíčku OzekiConsol.zip. Ve složce OzekiConsole dvakrát klikněte na soubor OzekiConsole.sln. Tím se zobrazí dialogové okno "Jak chcete tento soubor otevřít?". V tomto dialogovém okně vyberte "Visual Studio". Po výběru Visual Studio klikněte na OK, aby se otevřel ukázkový projekt v C#. (Obrázek 4)
Krok 4 - Klikněte na Program.cs
Otevřete Program.cs kliknutím na soubor v Průzkumníku řešení na levé straně obrazovky. Toto je hlavní kód tohoto příkladu projektu v C#. Tento kód obsahuje příklady, jak odesílat SMS z C# a jak přijímat SMS v C#. Kód není příliš dlouhý, má asi 300 řádků. Demonstruje plnou funkcionalitu C# SMS API. (Obrázek 5)
Krok 5 - Nastavte bod přerušení v kódu pro přijímání SMS
Najděte obslužnou rutinu události OnMessageReceived a nastavte bod přerušení na začátek procedury. Tento bod přerušení vám dá možnost zachytit událost OnMessageReceived. Událost OnMessageReceived je spuštěna, když váš C# SMS klient přijme SMS zprávu od SMS brány. (Obrázek 6)
Krok 6 - Vytvořte uživatelský účet OZX pro SMS API
Aby se příklad C# SMS API mohl připojit k SMS bráně, musíte vytvořit uživatelský účet OZX v SMS bráně. Chcete-li to provést, přejděte do konzole pro správu SMS brány otevřením URL https://127.0.0.1:9515 a klikněte na odkaz "Přidat nového uživatele/aplikaci" na pravé straně obrazovky. (Obrázek 7)
Odkaz "Přidat nového uživatele/aplikaci" zobrazí seznam instalovatelných typů uživatelů. Musíte najít uživatelský účet OZX v seznamu. Uživatelský účet OZX používá vysoce optimalizovaný SMS protokol, který umožňuje vaší C# SMS aplikaci komunikovat s SMS bránou přes síť. Protože SMS brána a C# SMS klient komunikují přes síť, můžete přijímat textové zprávy ve vašem C# projektu, i když projekt běží na jiném počítači. (Obrázek 8)
Zadejte uživatelské jméno a heslo. V našem příkladu používáme jako uživatelské jméno testuser a jako heslo testpass. C# SMS klient bude používat tyto přihlašovací údaje pro připojení k SMS bráně. Pokud chcete více než jedno připojení C# SMS API, můžete vytvořit více uživatelských účtů OZX. Každý uživatelský účet bude hostovat svého vlastního C# SMS API klienta. Chcete-li rozhodnout, který C# SMS klient přijme příchozí SMS, musíte vytvořit příchozí trasy v směrovací tabulce Ozeki SMS. (Obrázek 9)
Povolte možnosti protokolování pro účet C# SMS API, abyste získali komunikační protokoly. Doporučuji nejprve zaškrtnout všechna políčka protokolování, abyste získali podrobné informace o tom, co se se zprávou děje. Pokud přijmete text, uvidíte ho v protokolu, než bude předán vašemu C# SMS klientovi. (Obrázek 10)
Krok 6 - Přidejte novou trasu pro simulaci příchozí SMS
Vytvořte novou SMS trasu, která umožní uživateli admin odesílat testovací SMS zprávy C# SMS API klientovi. Jednou z nejlepších věcí při používání Ozeki SMS brány je, že umožňuje spravovat vaše SMS zprávy pomocí směrovací tabulky. Můžete nastavit různá připojení k mobilní síti a rozhodnout, která SMS kam půjde. V našem příkladu chceme směrovat SMS zprávy přicházející z účtu admin do C# SMS API klienta. V reálném systému nebudete směrovat SMS z účtu admin, místo toho budete směrovat SMS zprávy přijaté na připojení k mobilní síti do vašeho C# SMS API klienta.
Chcete-li vytvořit novou SMS trasu, klikněte na Přidat novou trasu v řídicím panelu Ozeki SMS brány (Obrázek 11).
Chcete-li přijmout text při psaní vašeho kódu C# SMS, použijete formulář pro vytváření SMS v SMS bráně a odešlete SMS jako uživatel admin. SMS trasa, kterou vytvoříme, bude směrovat SMS zprávy přicházející od admina k účtu testuser. Účet testuser předá SMS dále k C# SMS klientovi (Obrázek 12).
Vyberte testuser jako cíl pro vaše příchozí SMS zprávy ve formuláři s detaily směrování. Tato trasa bude odesílat SMS zprávy od uživatele admin k uživateli testuser. Uživatel testuser předá přijaté SMS zprávy dále k C# API klientovi (Obrázek 13).
Krok 7 - Spuštění příkladu projektu C# pro SMS
Pro spuštění vašeho projektu C# pro SMS klikněte na tlačítko Start na panelu nástrojů Visual Studia. Po kliknutí na toto tlačítko Visual Studio zkompiluje kód a spustí jej ve vývojovém prostředí. Provádění programu bude zastaveno, když algoritmus narazí na zarážku. Protože náš příklad je konzolová aplikace, uvidíte po spuštění černé konzolové okno. (Obrázek 14)
Do konzolového okna napište příkaz help. Text nápovědy vypíše dostupné příkazy v tomto příkladu projektu. První příkaz, který použijete, je příkaz connect. Do konzolového okna napište "connect 127.0.0.1:9580 testuser testpass" pro připojení vašeho kódu C# pro SMS k SMS bráně. Poznámka: 127.0.0.1 znamená, že SMS brána běží na stejném počítači, kde běží váš kód C# pro SMS. 9580 je TCP/IP port, který SMS brána používá pro přijímání klientů C# pro SMS (uživatelé OZX), a přihlašovací údaje testuser a testpass jsou ty, které jsme definovali při vytvoření uživatelského účtu OZX v kroku 6 tohoto tutoriálu SMS. (Obrázek 15)
Jakmile jste připojeni k SMS bráně, jste připraveni odeslat první SMS vašemu klientovi C# API.
Krok 8 - Odeslání testovací SMS
Odešlete testovací SMS zprávu kliknutím na tlačítko "Nový" na panelu nástrojů Ozeki v konzoli pro správu SMS brány. Při odesílání testovací SMS budete muset definovat adresu příjemce a text zprávy. Na kartě Pokročilé můžete také definovat ID odesílatele, jako je alfanumerické ID odesílatele pro vaši SMS. (Obrázek 16)
Klikněte na OK pro odeslání testovací SMS. Vaše SMS brána vám poskytne události související s odesláním SMS a bude vám předáno ID zprávy. Můžete si všimnout řetězce GUID na posledním řádku obrázku 17.
Poté, co je SMS odeslána administrátorským uživatelem, je přijata uživatelským účtem OZX s názvem testuser. Tento uživatelský účet přepošle SMS klientovi C# pro SMS přes síť. Klient C# pro SMS přijme text přes TCP/IP spojení navázané metodou connect. Pokud jste nastavili zarážku v události OnMessageReceived, právě v tomto okamžiku bude provádění programu pozastaveno.
Krok 9 - Příjem SMS v C# konzoli
Přečtěte si řádek s přijatou zprávou v C# konzoli. Uvidíte, že SMS byla odeslána uživatelem admin@localhost na telefonní číslo +361111111. Klient C# SMS API přijal text 'Hello c sharp client' (Obrázek 18). Textová zpráva byla předána klientovi C# ve formě události C#. Obslužná rutina události OnMessageReceived je volána, když je tato událost vyvolána, a zpráva byla vložena do vstupního parametru metody OzMessageReceived.
Další věc, kterou budete chtít udělat, je podívat se na log v SMS bráně.
Krok 10 - Zobrazení logů v SMS bráně
Otevřete stránku s detaily testuser kliknutím na odkaz testuser v řídicím panelu Ozeki SMS brány. Tím se dostaneme k logu událostí účtu testuser. V tomto logu očekáváme, že uvidíme komunikaci mezi klientem C# pro SMS a SMS bránou. Také očekáváme, že uvidíme přijatou SMS zprávu v logu komunikace. (Obrázek 19)
Najděte řádek "Received." v záložce událostí testuser. V tomto řádku uvidíte SMS přijatou klientem C# pro SMS. Můžete vidět datum a čas události a detaily zprávy. Pod čitelným záznamem logu uvidíte log komunikace protokolu OZX. Tento log vám umožňuje ladit komunikaci v případě, že nastane nějaký problém. (Obrázek 20)
Přijetí textové zprávy z mobilní sítě
V předchozích krocích jsme simulovali příchozí zprávu. Správce odeslal zprávu, která byla předána do ukázky v C#. Dalším krokem je připojení systému k mobilní síti. K tomu máte různé možnosti. Můžete se připojit k poskytovateli SMS služeb přes internet pomocí Ozeki 10 SMS bránu na svém Android telefonu a využít vestavěné SMS připojení Android SMS brány. (Obrázek 21)
Aby výše uvedené řešení fungovalo s Android telefonem, stačí vytvořit příchozí trasu v tabulce směrování SMS Ozeki. Tuto trasu je třeba vytvořit mezi připojením k mobilní síti a uživatelem C# SMS API (testuser). Pro nalezení nejlepší metody připojení k mobilní síti pro váš projekt se podívejte na našeho průvodce připojením SMS brány k mobilní síti. (Obrázek 22)
Shrnutí
Toto byl dlouhý a velmi podrobný návod, který vám pomůže začít s vývojem projektu v C# pro příjem SMS zpráv. Pokud toto řešení začnete používat, rychle zjistíte, že je velmi vhodné, pokud chcete přijímat SMS zprávy rychle přes různé mobilní síťové připojení. Toto řešení funguje ať už chcete přijímat SMS přes Android telefon nebo přes IP SMS spojení, jako je SMPP klientské připojení.
More information
- Jak odeslat SMS z C#
- Příjem SMS v C#
- C# SMS API připojení pro odesílání SMS
- C# SMS API - odpojení od SMS brány
- C# SMS API - udržování SMS připojení
- C# SMS API - odeslání textové zprávy
- C# SMS API - SMS přijata k doručení
- C# SMS API - SMS nepřijata k doručení
- C# SMS API - odesláno
- C# SMS API - odeslání selhalo
- C# SMS API - úspěšná doručovací zpráva
- C# SMS API - zpráva o selhání doručení
- C# SMS API - alfanumerické ID odesílatele
- C# SMS API - jak použít krátký kód jako ID odesílatele
- C# SMS API třída textové zprávy