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

Jak přijímat SMS v C# (Rychlé kroky)

Jak přijímat SMS v C#
  1. Stáhněte si příklad přijímání SMS v C#
  2. Otevřete řešení ve Visual Studiu
  3. Připojte se k Ozeki SMS Gateway
  4. Přijměte simulovanou SMS v C#
  5. Připojte se k mobilní síti
  6. Přijměte SMS v C#, která byla odeslána z mobilu
  7. Zkontrolujte protokoly v SMS gateway
  8. Zkontrolujte zprávu o doručení na vašem mobilu

přijímat sms v c#
Obrázek 1 - Přijímání SMS v C#

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#.

stažená Ozeki SMS knihovna
Obrázek 2 - Stažená Ozeki SMS knihovna

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).

Extrahujte příklad přijímání SMS v C#
Obrázek 3 - Extrahujte příklad přijímání SMS v C#

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)

Otevřete příklad přijímání SMS v C# ve Visual Studiu
Obrázek 4 - Otevřete příklad přijímání SMS v C# ve Visual Studiu

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)

Načtení Program.cs do editoru
Obrázek 5 - Načtení Program.cs do editoru

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)

nastavte bod přerušení v události při přijetí SMS
Obrázek 6 - nastavte bod přerušení v události při přijetí zprávy

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)

Vytvořte uživatelský účet pro příjem textových zpráv
Obrázek 7 - Vytvořte uživatelský účet pro příjem textových zpráv v C#

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)

nainstalujte uživatelský účet C# SMS API
Obrázek 8 - Klikněte na instalovat pro instalaci uživatelského účtu C# SMS API (OZX uživatel)

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)

Nastavte testuser jako uživatelské jméno C# SMS API
Obrázek 9 - Nastavte testuser jako uživatelské jméno C# SMS API

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)

Povolte protokolování, abyste viděli přijaté SMS předtím, než se dostanou k C# SMS klientovi
Obrázek 10 - Povolte protokolování, abyste viděli přijaté SMS předtím, než se dostanou k C# SMS klientovi

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).

Přidejte novou SMS trasu pro C# SMS klienta
Obrázek 11 - Přidejte novou SMS trasu

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).

SMS z GUI do C#
Obrázek 12 - SMS od admina k C# klientovi

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).

Vytvořte SMS trasu pro simulaci příchozích textů
Obrázek 13 - Vytvořte SMS trasu pro simulaci příchozích textů

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)

Obrázek 14 - Spuštění projektu C# pro SMS API

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)

Obrázek 15 - Spuštění konzolové aplikace C# pro SMS

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)

testovací SMS připravena k přijetí
Obrázek 16 - Vytvoření testovací SMS připravené k přijetí

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.

ID zprávy SMS pro použití v C# SMS API
Obrázek 17 - ID zprávy SMS pro použití v C# SMS API

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.

příjem SMS v C# konzoli
Obrázek 18 - příjem SMS v C# konzoli

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)

Obrázek 19 - Otevření stránky s detaily testuser

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)

Obrázek 20 - kontrola příchozí SMS v uživatelském účtu spojeném s C# SMS API

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)

Obrázek 21 - Příjem SMS pomocí Android telefonu

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)

Obrázek 22 - Tabulka směrování příjmu SMS

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