Jak odeslat naplánovanou SMS z C#

Nejjednodušší způsob, jak odeslat SMS z C#, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Při použití tohoto API budete odesí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 odešle tuto SMS příjemci a vrátí HTTP 200 OK odpověď na váš požadavek.

c naplánovat sms pro budoucí doručení
Obrázek 1 - C# naplánování SMS pro budoucí doručení

C# kód pro odeslání naplánované SMS na mobil

Následující ukázka kódu v C# demonstruje, jak můžete odeslat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím knihovny Ozeki.Libs.Rest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli svém projektu.

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();
        }
    }
}

Jak použít ukázku C# SMS:

Tato ukázka C# SMS může být použita v jakékoli .NET nebo .NET core aplikaci. Pro použití je nutné 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. Třídu Message můžete použít 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 SendScheduledSms.cs

Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendScheduledSms.cs.zip (34,2Kb)

Co obsahuje soubor SendScheduledSms.cs?

Soubor SendScheduledSms.cs obsahuje knihovnu Ozeki.Libs.Rest, která vám poskytuje všechny nástroje potřebné pro odesílání a přijímání SMS zpráv. V zipu také najdete projekt SendScheduleSms, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.

odeslat naplánovanou sms cs adresář
Obrázek 2 - Co je uvnitř SendScheduledSms.cs.zip

Jak odeslat naplánovanou SMS z C# (Jednoduchý návod)

Pro odeslání naplánované SMS z C#:

  1. Nainstalujte HTTP API uživatele
  2. Nastavte Visual Studio
  3. Stáhněte soubor SendScheduledSms.cs.zip
  4. Extrahujte .zip soubor ze složky Stažené soubory
  5. Otevřete soubor SendScheduledSms.sln v Visual Studiu
  6. Přidejte Ozeki.Libs.Rest DLL jako referenci
  7. Upravte soubor pro naplánování SMS z C#
  8. Spusťte Ozeki SMS Gateway
  9. Spusťte Program.cs v Visual Studiu pro odeslání SMS z C#
  10. Zkontrolujte logy

Instalace Ozeki SMS Gateway a vytvoření HTTP API uživatele

Pro odesílání SMS z C# je nejprve nutné nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj C# kód 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ě 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 C# kód.

HTTP API URL pro odesílání SMS z C#

Pro odesílání SMS z C# bude vaše C# aplikace 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 je nutné 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 pro toto kódování použít následující kód:

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', získáte 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í naplánované 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:9511

{
  "messages": [
    {
      "message_id": "212a019e-a6f5-46f8-80e5-abddb273451b",
      "to_address": "+36201111111",
      "text": "Ahoj, světe!",
      "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 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. Také vrátí 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 13:06:37 GMT
Server: 10/10.3.116
Transfer-Encoding: chunked

{
  "http_code": 200,
  "response_code": "ÚSPĚCH",
  "response_msg": "Zprávy zařazeny do fronty k odeslání.",
  "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": "Ahoj, světe!",
        "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": "Typ",
            "value": "SMS:TEXT"
          }
        ],
        "status": "ÚSPĚCH"
      }
    ]
  }
}

Příklad SMS v C#: SendSMS.sln

Jak stáhnout projekt (Video návod)

V tomto videu vám ukážeme, jak otevřít projekt SendSMS.sln a začít s ním pracovat. Video začíná stránkou s návodem a odkazem ke stažení a provede vás až k otevřenému kódu. Dozvíte se, jak projekt stáhnout a jak jej otevřít. Video trvá pouze 1 minutu, ale obsahuje všechny potřebné informace, abyste mohli otevřít projekt SendSMS.sln pro odesílání naplánovaných SMS.

Video 1 - Jak stáhnout a otevřít výše uvedené řešení (Video návod)

Níže uvedený příklad kódu je součástí řešení Visual Studio SendScheduledSms.sln. Řešení Visual Studio může obsahovat více projektů a více souborů. V tomto řešení je pouze jeden projekt: SendScheduledSms.csproj, a jeden soubor: Program.cs.

Jak používat projekt (Video návod)

Toto video vám představí, jak používat projekt SendSMS.sln pro odesílání naplánovaných SMS. Začíná otevřeným projektem a končí výpisem odeslaných zpráv. Dozvíte se, jak přidat čas, kdy chcete zprávu odeslat, a jak spustit kód. Poté budete moci zkontrolovat záložku Události s výpisem odeslání SMS. Video trvá pouze 80 sekund a obsahuje všechny důležité kroky. Nebudete mít problém sledovat návod.

Video 2 - Jak odeslat naplánovanou SMS pomocí výše uvedeného řešení (Video návod)

Obrázek 3 - SendScheduledSms.sln

Spuštění příkladu SMS v C# na Windows

Když použijete Windows pro 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. Abychom pochopili, proč k tomu dochází, je třeba mít na paměti, že C# používá pro spouštění kódu framework .NET. Důvodem je, ž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ý článek vysvětluje kroky pro plánování SMS z C#. Ozeki poskytuje všechny nástroje a instrukce, takže po dokončení tohoto průvodce byste měli být schopni plánovat své zprávy pomocí C# a Ozeki SMS Gateway.

Plánování SMS je velmi užitečné, pokud chcete posílat informace zákazníkům a zároveň se ujistit, že budou mít čas věnovat zprávě pozornost. Tímto způsobem můžete zajistit, že zpráva nebude ignorována nebo zapomenuta, protože se vyhnete jejich rušným hodinám. Je důležité poznamenat, že Ozeki SMS Gateway nabízí vynikající možnosti logování, takže vzniklé chyby lze snadno a rychle vysledovat.

Pokračujte ve studiu na stránkách tutoriálů Ozeki, kde můžete získat více informací o podobných tématech, jako je mazání v C#.

Nyní už zbývá jen stáhnout Ozeki SMS Gateway a začít pracovat!

More information