Ako poslať naplánovanú 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 pomocou HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu vo formáte JSON. SMS brána pošle túto SMS na príjemcove telefónne číslo a vráti HTTP 200 OK odpoveď na vašu požiadavku.

c naplánovanie sms na neskoršie doručenie
Obrázok 1 - C# naplánovanie SMS na neskoršie doručenie

C# kód na odoslanie naplánovanej SMS na mobil

Ukážka kódu v C# nižšie demonštruje, ako môžete poslať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím knižnice Ozeki.Libs.Rest v C#. Táto knižnica je poskytovaná bezplatne a môžete ju používať a upravovať v akomkoľvek z vašich projektov.

SendScheduledSms.cs
using Ozeki.Libs.Rest;
using System;

namespace SendScheduledSms
{
    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!",
                TimeToSend = DateTime.Parse("2021-06-11 13:25:00")
            };


            var api = new MessageApi(configuration);

            var result = api.Send(msg);

            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
}

Ako použiť ukážku kódu v C#:

Túto ukážku kódu v C# môžete použiť v akomkoľvek .NET alebo .NET Core aplikácii. Na jej použitie musíte pridať Ozeki.Libs.Rest.dll ako referenciu do vášho projektu. Po pridaní referencie musíte vložiť direktívu using Ozeki.Libs.Rest; do hlavičky vášho zdrojového kódu v C#. 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ď bezdrôtovým pripojením alebo cez internet.

Stiahnuť SendScheduledSms.cs

Zdrojový kód vysvetlený v tomto článku je možné stiahnuť, použiť a upravovať bezplatne.
Stiahnuť: SendScheduledSms.cs.zip (34.2Kb)

Čo obsahuje súbor SendScheduledSms.cs?

Súbor SendScheduledSms.cs 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 SendScheduleSms, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako odoslať SMS. Tento ukážkový kód je uvedený nižšie.

adresár send scheduled sms cs
Obrázok 2 - Čo je vo vnútri SendScheduledSms.cs.zip

Ako poslať naplánovanú SMS z C# (Jednoduchý návod)

Na odoslanie naplánovanej SMS z C#:

  1. Nainštalujte HTTP API používateľa
  2. Nastavte Visual Studio
  3. Stiahnite si súbor SendScheduledSms.cs.zip
  4. Extrahujte .zip súbor z priečinka Stiahnuté
  5. Otvorte súbor SendScheduledSms.sln v Visual Studio
  6. Pridajte Ozeki.Libs.Rest.dll ako referenciu
  7. Upravte súbor na naplánovanie SMS z C#
  8. Spustite Ozeki SMS Gateway
  9. Spustite Program.cs v Visual Studio na odoslanie SMS z C#
  10. Skontrolujte logy
Nainštalujte Ozeki SMS Gateway a vytvorte HTTP API používateľa

Aby ste mohli posielať SMS z C#, musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnaký počítač, kde vyvíjate svoj kód v C# vo 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 kód v C#.

HTTP API URL na odoslanie SMS z C#

Na odoslanie SMS z C# bude váš kód v C# 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ží vaša aplikácia v C#, 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 odoslanie SMS z C#

Na autentifikáciu klienta v C# musíte odoslať používateľské meno a heslo v base64 kódovanom reťazci 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 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 do HTTP požiadavky zahrnúť nasledujúce riadky ako hlavičky. Upozorňujeme, že obsahujeme typ obsahu a autorizačnú hlavičku.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požiadavka na odoslanie naplánovanej SMS z C#

Na odoslanie SMS bude vaša aplikácia v C# odosielať HTTP požiadavku podobnú ako tá nižšie. 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: 336
Content-Type: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9511

{
  "messages": [
    {
      "message_id": "212a019e-a6f5-46f8-80e5-abddb273451b",
      "to_address": "+36201111111",
      "text": "Hello, World!",
      "create_date": "2021-06-11 13:20:09",
      "valid_until": "2021-06-18 13:20:09",
      "time_to_send": "2021-06-11 13:25:00",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    }
  ]
}
HTTP odpoveď prijatá príkladom SMS v C#

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. Vráti tiež štruktúru zakódovanú v JSON, ktorá vám poskytne 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": "Messages queued for delivery.",
  "data": {
    "total_count": 1,
    "success_count": 1,
    "failed_count": 0,
    "messages": [
      {
        "message_id": "212a019e-a6f5-46f8-80e5-abddb273451b",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello, World!",
        "create_date": "2021-06-11 13:20:09",
        "valid_until": "2021-06-18 13:20:09",
        "time_to_send": "2021-06-11 13:25:00",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}
Príklad SMS v C#: SendSMS.sln Ako stiahnuť projekt (Video návod)

V tomto videu vám ukážeme, ako otvoriť projekt SendSMS.sln a začať s ním pracovať. Video začne návodovou stránkou a odkazom na stiahnutie a prevedie vás až k otvorenému kódu. Dozviete sa, ako stiahnuť projekt a ako ho otvoriť. Video trvá len 1 minútu, ale obsahuje všetky potrebné informácie, aby ste mohli otvoriť projekt SendSMS.sln na odosielanie naplánovaných SMS.

Video 1 - Ako stiahnuť a otvoriť riešenie vyššie (Video návod)

Príklad kódu nižšie je súčasťou riešenia Visual Studio SendScheduledSms.sln. Riešenie Visual Studio môže obsahovať viacero projektov a viacero súborov. V tomto riešení je len jeden projekt: SendScheduledSms.csproj, a jeden súbor: Program.cs.

Ako použiť projekt (Video návod)

Toto video vám predstaví, ako použiť projekt SendSMS.sln na odosielanie naplánovaných SMS. Začne s otvoreným projektom a skončí s logom odoslaných správ. Dozviete sa, ako pridať čas, kedy chcete odoslať správu, a ako spustiť kód. Potom budete môcť skontrolovať záložku Udalosti s logom pre odosielanie SMS. Video trvá len 80 sekúnd a obsahuje všetky dôležité kroky. Nebudete mať problém nasledovať návod.

Video 2 - Ako odoslať naplánovanú SMS pomocou riešenia vyššie (Video návod)

Obrázok 3 - SendScheduledSms.sln

Spustenie príkladu SMS v C# na Windows

Keď použijete Windows na spustenie tohto príkladu SMS napísaného v C#, všimnete si, že dostanete mierne lepší výkon, ako keď ho spustíte 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 framework .NET. Je to preto, lebo implementácia .NET na Windows je optimalizovaná pre výkon, zatiaľ čo mono, implementácia .NET na Linuxe, má v tejto oblasti nejaké dobiehanie.

Zhrnutie

Vyššie uvedený článok vysvetlil kroky naplánovania SMS z C#. Ozeki poskytuje všetky nástroje a pokyny, takže dokončenie tohto sprievodcu znamená, že by ste mali byť schopní naplánovať svoje správy pomocou C# a Ozeki SMS Gateway.

Plánovanie SMS je skutočne užitočné, ak chcete posielať informácie zákazníkom a zároveň sa chcete uistiť, že budú mať čas venovať správe pozornosť. Týmto spôsobom sa môžete uistiť, že správa nebude ignorovaná alebo zabudnutá, pretože sa vyhnete ich rušným hodinám. Dôležité je poznamenať, že Ozeki SMS Gateway ponúka vynikajúce možnosti logovania, takže vzniknuté chyby je možné ľahko a rýchlo vystopovať.

Pokračujte v štúdiu na stránkach s návodmi Ozeki, kde môžete získať viac informácií o podobných témach, ako sú mazanie v C#.

Teraz už vám stačí len stiahnuť Ozeki SMS Gateway a nechať prácu začať!

More information