Jak wysłać zaplanowaną wiadomość SMS 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, wysyłasz wiadomości SMS, wysyłając żądanie HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość w formacie JSON. Bramka SMS wyśle tę wiadomość na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na Twoje żądanie.
Kod C# do wysyłania zaplanowanych SMS-ów na telefon
Poniższy przykład kodu C# do wysyłania SMS-ów demonstruje, jak możesz wysyłać SMS-y za pomocą interfejsu HTTP REST SMS API Ozeki SMS Gateway, używając biblioteki Ozeki.Libs.Rest w C#. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym projekcie.
SendScheduledSms.csusing 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 używać przykładu kodu C# do wysyłania SMS-ów:
Ten przykład kodu C# do wysyłania SMS-ów 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 w C#. To pozwoli Ci używać 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 SendScheduledSms.cs
Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendScheduledSms.cs.zip (34,2 KB)
Co znajduje się w pliku SendScheduledSms.cs?
Plik SendScheduledSms.cs zawiera bibliotekę Ozeki.Libs.Rest, która dostarcza wszystkie narzędzia niezbędne do wysyłania i odbierania wiadomości SMS. Znajdziesz tam również projekt SendScheduleSms w archiwum zip, który zawiera przykładowy kod pokazujący, jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.
Jak wysłać zaplanowaną wiadomość SMS z C# (proste wskazówki)
Aby wysłać zaplanowaną wiadomość SMS z C#:
- Zainstaluj użytkownika HTTP API
- Skonfiguruj Visual Studio
- Pobierz plik SendScheduledSms.cs.zip
- Wypakuj plik .zip z folderu Pobrane
- Otwórz plik SendScheduledSms.sln w Visual Studio
- Dodaj bibliotekę Ozeki.Libs.Rest jako referencję
- Edytuj plik, aby zaplanować wysłanie SMS z C#
- Uruchom Ozeki SMS Gateway
- Uruchom Program.cs w Visual Studio, aby wysłać SMS z C#
- Sprawdź logi
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 w C# w Visual Studio. Po instalacji kolejnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testową wiadomość SMS 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 w C#.
URL API HTTP do wysyłania SMS-ów z C#
Aby wysyłać SMS-y z C#, Twój kod w C# będzie musiał wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Pamiętaj, że adres IP (127.0.0.1) powinien zostać zastąpiony adresem IP Twojej bramki SMS. Jeśli Ozeki SMS Gateway jest zainstalowana 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 zainstalowana 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#, musisz wysłać nazwę użytkownika i hasło w zakodowanym ciągu 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 z C#
Aby wysłać wiadomości SMS, należy dołączyć następujące linie jako nagłówki w żądaniu HTTP. Należy zauważyć, że zawieramy typ zawartości i nagłówek autoryzacji.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Żądanie HTTP do wysyłania zaplanowanych SMS z C#
Aby przesłać SMS, Twoja aplikacja C# wyśle żądanie HTTP podobne do poniższego. Należy zauważyć, że to żądanie zawiera część nagłówka HTTP i część ciała HTTP. Ciało HTTP to ciąg danych zakodowany w formacie JSON. Zawiera numer odbiorcy i tekst wiadomości.
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": [] } ] }
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 formacie 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": "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" } ] } }
Przykład SMS w C#: SendSMS.sln
Jak pobrać projekt (Samouczek wideo)
W tym filmie pokażemy Ci, jak otworzyć projekt SendSMS.sln i rozpocząć pracę z nim. Film rozpocznie się od strony samouczka i linku do pobrania, a następnie przeprowadzi Cię przez cały proces aż do otwarcia kodu. Dowiesz się, jak pobrać projekt i jak go otworzyć. Film trwa tylko 1 minutę, ale zawiera wszystkie niezbędne informacje, abyś mógł otworzyć projekt SendSMS.sln do wysyłania zaplanowanych SMS.
Poniższy przykładowy kod jest częścią rozwiązania Visual Studio SendScheduledSms.sln. Rozwiązanie Visual Studio może zawierać wiele projektów i wiele plików. W tym rozwiązaniu jest tylko jeden projekt: SendScheduledSms.csproj i jeden plik: Program.cs.
Jak używać projektu (Samouczek wideo)
Ten film prezentuje, jak używać projektu SendSMS.sln do wysyłania zaplanowanych SMS. Rozpocznie się od otwartego projektu i zakończy logiem wysłanych wiadomości. Dowiesz się, jak dodać czas, w którym chcesz wysłać wiadomość, oraz jak uruchomić kod. Następnie będziesz mógł sprawdzić zakładkę Zdarzenia z logiem wysyłania SMS. Film trwa tylko 80 sekund i zawiera wszystkie ważne kroki. Nie będziesz miał problemu z śledzeniem samouczka.
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 uzyskujesz nieco lepszą wydajność niż podczas uruchamiania go na Linuxie. Aby zrozumieć, dlaczego tak się dzieje, należy pamiętać, że C# używa frameworka .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
Powyższy artykuł wyjaśnia kroki planowania SMS-ów w C#. Ozeki zapewnia wszystkie narzędzia i instrukcje, więc po zakończeniu tego przewodnika powinieneś być w stanie zaplanować swoje wiadomości za pomocą C# i Ozeki SMS Gateway.
Planowanie SMS-ów jest bardzo przydatne, jeśli chcesz wysyłać informacje do klientów i jednocześnie chcesz mieć pewność, że będą mieli czas, aby zwrócić uwagę na wiadomość. W ten sposób możesz upewnić się, że wiadomość nie zostanie zignorowana lub zapomniana, ponieważ unikniesz ich godzin szczytu. Warto zauważyć, że Ozeki SMS Gateway oferuje doskonałe możliwości logowania, dzięki czemu występujące błędy można łatwo i szybko wyśledzić.
Kontynuuj naukę na stronach tutorialowych Ozeki, gdzie możesz uzyskać więcej informacji na podobne tematy, takie jak usuwanie w C#.
Teraz jedyne, co musisz zrobić, to pobrać Ozeki SMS Gateway i zacząć pracę!
More information
- Jak wysłać SMS z C#
- Jak wysłać wiele SMS z C#
- Jak wysłać zaplanowane SMS z C#
- Jak odbierać SMS w C#
- Jak usunąć SMS za pomocą C#
- Github: C# SMS API
- Biblioteka NuGet do SMS dla C#