Jak wysłać wiele SMS-ów z C#

Najprostszym sposobem wysyłania SMS-ów z C# jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Korzystając z tego API, możesz wysyłać wiadomości SMS, wysyłając żądanie HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość sformatowaną w formacie JSON. Bramka SMS wyśle tę wiadomość na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na Twoje żądanie.

wysyłanie wielu sms z
Rysunek 1 - Wysyłanie wielu SMS-ów z C#

Kod C# do wysyłania wielu SMS-ów na telefony

Poniższy przykład kodu C# do wysyłania SMS demonstruje, jak można wysyłać SMS-y za pomocą interfejsu HTTP REST SMS API Ozeki SMS Gateway, korzystając z biblioteki Ozeki.Libs.Rest w C#. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym projekcie.

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

namespace SendMultipleSms
{
    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 msg1 = new Message()
            {
                ToAddress = "+36201111111",
                Text = "Hello, World 1"
            };

            var msg2 = new Message()
            {
                ToAddress = "+362222222",
                Text = "Hello, World 2"
            };

            var msg3 = new Message()
            {
                ToAddress = "+363333333",
                Text = "Hello, World 3"
            };

            var api = new MessageApi(configuration);

            var result = api.Send(new Message[]{ msg1, msg2, msg3 });

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

Jak używać przykładu C# do wysyłania SMS:

Ten przykład C# do wysyłania SMS może być używany w dowolnej aplikacji .NET lub .NET core. Aby go użyć, musisz dodać bibliotekę Ozeki.Libs.Rest jako referencję do swojego projektu. Po dodaniu referencji do projektu, musisz umieścić dyrektywę using Ozeki.Libs.Rest; w sekcji nagłówkowej swojego kodu źródłowego C#. To pozwoli Ci korzystać z klas dostarczonych przez bibliotekę Ozeki.Libs.Rest. Możesz użyć klasy Message do tworzenia SMS-ów. Możesz użyć klasy MessageApi do wysyłania SMS-ów do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej przez połączenie bezprzewodowe lub przez Internet.

Pobierz SendSMS.cs

Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendMultipleSms.cs.zip (34.5Kb)

Co znajduje się w pliku SendMultipleSms.cs?

Plik SendMultipleSms.cs zawiera bibliotekę Ozeki.Libs.Rest, która dostarcza wszystkich narzędzi niezbędnych do wysyłania i odbierania wiadomości SMS. Znajdziesz tam również projekt SendMultipleSms w archiwum zip, który zawiera przykładowy kod pokazujący, jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.

katalog wysyłania wielu sms cs
Rysunek 2 - Co znajduje się w SendMultipleSms.cs.zip

Jak wysłać wiele SMS-ów z C# (Szybkie kroki)

Aby wysłać wiele SMS-ów z C#:

  1. Skonfiguruj Visual Studio Community
  2. Pobierz plik Send-multiple-SMS.cs.zip
  3. Wypakuj plik .zip z folderu Pobrane
  4. Otwórz plik SendMultipleSms.sln w Visual Studio
  5. Uruchom Ozeki SMS Gateway
  6. Utwórz użytkownika HTTP API w Ozeki
  7. Uruchom kod C# Program.cs w Visual Studio, aby wysłać testowe wiadomości SMS
  8. Sprawdź skrzynkę Wysłane w Ozeki SMS Gateway

Zainstaluj Ozeki SMS Gateway i utwórz użytkownika HTTP API

Aby móc wysyłać SMS-y z C#, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod C# w Visual Studio. Po instalacji następnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testowego SMS-a z interfejsu Ozeki, aby sprawdzić, czy Twoje połączenie z siecią komórkową działa. Ostatnim krokiem przygotowania środowiska jest utworzenie użytkownika HTTP SMS API. Utwórz użytkownika z nazwą "http_user" i hasłem "qwe123", aby przykład działał bez modyfikacji.

Po skonfigurowaniu środowiska możesz uruchomić swój kod C#.

URL API HTTP do wysyłania SMS-ów z C#

Aby wysyłać SMS-y z C#, Twój kod C# będzie musiał wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Zauważ, że adres IP (127.0.0.1) powinien zostać zastąpiony adresem IP Twojej bramki SMS. Jeśli Ozeki SMS Gateway jest zainstalowany na tym samym komputerze, na którym działa aplikacja C# do wysyłania SMS-ów, może to być 127.0.0.1. Jeśli jest zainstalowany na innym komputerze, powinien to być adres IP tego komputera.

http://127.0.0.1:9509/api?action=rest

Uwierzytelnianie HTTP do wysyłania SMS-ów z C#

Aby uwierzytelnić klienta SMS w C#, należy wysłać nazwę użytkownika i hasło w formie zakodowanej w base64 do serwera w żądaniu HTTP. Używany format to: base64(nazwa_użytkownika+":"+hasło). W C# możesz użyć następującego kodu do wykonania tego kodowania:

var encoding = Encoding.GetEncoding("iso-8859-1");
var usernamePassword = username + ":" + password;
var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));

Na przykład, jeśli zakodujesz nazwę użytkownika 'http_user' i hasło 'qwe123', otrzymasz następujący zakodowany ciąg base64: aHR0cF91c2VyOnF3ZTEyMw==. Aby wysłać

Nagłówek żądania HTTP do wysyłania SMS-ów z C#

Aby wysłać wiadomości SMS, należy dołączyć następujące linie jako nagłówki w żądaniu HTTP. Zauważ, że zawieramy typ zawartości i nagłówek Authorization.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Żądanie HTTP do wysyłania SMS-ów z C#

Aby przesłać wiadomości SMS, Twoja aplikacja C# wyśle żądanie HTTP podobne do poniższego. Zauważ, że to żądanie zawiera część nagłówka HTTP i część ciała HTTP. Ciało HTTP to ciąg danych zakodowany w JSON. Zawiera numer odbiorcy i tekst wiadomości.

POST /api?action=sendmsg HTTP/1.1
Connection: Keep-Alive
Content-Length: 979
Content-Type: application/json
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9511

{
  "messages": [
    {
      "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e",
      "to_address": "+36201111111",
      "text": "Hello, World 1",
      "create_date": "2021-06-11 13:08:26",
      "valid_until": "2021-06-18 13:08:26",
      "time_to_send": "2021-06-11 13:08:26",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    },
    {
      "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12",
      "to_address": "+362222222",
      "text": "Hello, World 2",
      "create_date": "2021-06-11 13:08:26",
      "valid_until": "2021-06-18 13:08:26",
      "time_to_send": "2021-06-11 13:08:26",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    },
    {
      "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9",
      "to_address": "+363333333",
      "text": "Hello, World 3",
      "create_date": "2021-06-11 13:08:26",
      "valid_until": "2021-06-18 13:08:26",
      "time_to_send": "2021-06-11 13:08:26",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    }
  ]
}

Odpowiedź HTTP otrzymana przez przykład SMS w C#

Gdy brama SMS otrzyma to żądanie, wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, aby wskazać, czy żądanie wysłania SMS zakończyło się sukcesem czy nie. Zwróci również strukturę zakodowaną w JSON, aby dostarczyć przydatne informacje o przesłaniu wiadomości.

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": "Wiadomości zakolejkowane do wysłania.",
  "data": {
    "total_count": 3,
    "success_count": 3,
    "failed_count": 0,
    "messages": [
      {
        "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello, World 1",
        "create_date": "2021-06-11 13:08:26",
        "valid_until": "2021-06-18 13:08:26",
        "time_to_send": "2021-06-11 13:08:26",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12",
        "from_station": "%",
        "to_address": "+362222222",
        "to_station": "%",
        "text": "Hello, World 2",
        "create_date": "2021-06-11 13:08:26",
        "valid_until": "2021-06-18 13:08:26",
        "time_to_send": "2021-06-11 13:08:26",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9",
        "from_station": "%",
        "to_address": "+363333333",
        "to_station": "%",
        "text": "Hello, World 3",
        "create_date": "2021-06-11 13:08:26",
        "valid_until": "2021-06-18 13:08:26",
        "time_to_send": "2021-06-11 13:08:26",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}

Przykład SMS w C#: SendMultipleSms.sln

Jak pobrać projekt SendMultipleSMS.sln (Samouczek wideo)

W poniższym filmie dowiesz się, jak możesz wykorzystać projekt C# SendMultipleSMS.sln. Film rozpocznie się od strony pobierania i przeprowadzi Cię aż do otwartego panelu edytora kodu. Nauczysz się, jak pobrać i otworzyć plik kodu. Film trwa tylko 54 sekundy, ale zawiera wszystkie niezbędne informacje, które są potrzebne do skutecznego wykorzystania przykładowego pliku kodu.

Wideo 1 - Jak pobrać i otworzyć rozwiązanie powyżej (Samouczek wideo)

Przykładowy kod poniżej jest częścią rozwiązania Visual Studio SendMultipleSms.sln. Rozwiązanie Visual Studio może zawierać wiele projektów i wiele plików. W tym rozwiązaniu jest tylko jeden projekt: SendMultipleSms.csproj i jeden plik: Program.cs.

how to send multiple sms using c sharp
Rysunek 3 - SendMultipleSms.sln

Jak używać projektu (Samouczek wideo)

W poniższym klipie zobaczysz, jak można uruchomić kod C# SendMultipleSMS.cs. Film rozpocznie się od otwartego kodu i przeprowadzi Cię aż do zakładki zdarzeń z logiem wysłanej wiadomości. Zobaczysz, jak uruchomić kod i co się stanie, jeśli kod zostanie wykonany. Film jest nieco krótszy niż 1 minuta, ale zawiera wszystkie informacje niezbędne do uruchomienia projektu.

Wideo 2 - Jak używać rozwiązania SendMultipleSms.cs (Samouczek wideo)

Uruchamianie przykładu SMS w C# na Windows

Kiedy używasz systemu Windows do uruchomienia tego przykładu SMS napisanego w C#, zauważysz, że uzyskasz nieco lepszą wydajność niż podczas uruchamiania go na Linuxie. Aby zrozumieć, dlaczego tak się dzieje, należy pamiętać, że C# wykorzystuje framework .NET do wykonywania kodu. Dzieje się tak, ponieważ implementacja .NET w systemie Windows jest zoptymalizowana pod kątem wydajności, podczas gdy mono, implementacja .NET na Linuxie, ma jeszcze trochę do nadrobienia w tej dziedzinie.

Podsumowanie

W tym artykule pokazano kroki wysyłania wielu SMS-ów w jednym żądaniu z C#. Dzięki tej wiedzy i dostarczonym narzędziom powinieneś być w stanie dotrzeć do wielu klientów za pomocą jednego kodu. Ozeki SMS Gateway odgrywa ważną rolę w tym procesie, ponieważ ten program organizuje dostarczanie wiadomości. Ozeki SMS Gateway działa z wysoką jakością i wydajnością, pozwalając na wysłanie do 1000 SMS-ów na sekundę.

Kontynuuj naukę na stronach samouczków Ozeki, gdzie możesz przeczytać o tematach takich jak Planowanie SMS i usuwanie w C#.

Teraz jedyne, co musisz zrobić, to pobrać Ozeki SMS Gateway i zacząć pracę!

More information