Jak zaplanować wysłanie SMS-a w Javie
Najprostszym sposobem wysyłania SMS-ów z Javy jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Korzystając z tego API, wysyłasz wiadomości SMS poprzez wysłanie żądania 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 Java do wysyłania SMS-ów na telefon
Poniższy przykładowy kod Java do wysyłania SMS-ów demonstruje, jak możesz wysyłać SMS-y korzystając z interfejsu HTTP rest sms API Ozeki SMS Gateway przy użyciu biblioteki Java Ozeki.Libs.Rest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnych swoich projektach.
Main.javaimport Ozeki.Libs.Rest.*; import java.time.LocalDateTime; public class Main { public static void main(String[] args) { var configuration = new Configuration(); configuration.Username = "http_user"; configuration.Password = "qwe123"; configuration.ApiURL = "http://127.0.0.1:9509/api"; var msg = new Message(); msg.ToAddress = "+36201111111"; msg.Text = "Hello world!"; msg.TimeToSend = LocalDateTime.parse("2021-06-11T13:52:00"); var api = new MessageApi(configuration); var result = api.Send(msg); System.out.println(result); } }
Jak używać przykładu Java do wysyłania SMS-ów:
Możesz użyć klasy Message do tworzenia SMS-ów, a klasy MessageApi do wysyłania SMS-ów do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej poprzez połączenie bezprzewodowe lub przez Internet.
Pobierz SendScheduledSms.java
Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendScheduledSms.java.zip (80.2Kb)
Co znajduje się w pliku SendScheduledSms.java.zip?
Plik SendScheduledSms.java.zip zawiera bibliotekę Ozeki, która dostarcza wszystkie narzędzia niezbędne do wysyłania i odbierania wiadomości SMS. Znajdziesz tam również plik Main.java w projekcie, który zawiera przykładowy kod pokazujący, jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.
Jak wysłać zaplanowanego SMS-a z Javy (Szybkie kroki)
Aby wysłać zaplanowanego SMS-a z Javy:
- Zainstaluj Ozeki SMS Gateway
- Podłącz Ozeki SMS Gateway do sieci komórkowej
- Wyślij testowego SMS-a z interfejsu Ozeki
- Utwórz użytkownika HTTP sms api
- Zainstaluj Apache NetBeans
- Utwórz projekt o nazwie SendScheduledSms
- Umieść kod w nowo utworzonym pliku Main.java lub użyj pliku Main.java z .zip
- Utwórz SMS, tworząc nowy obiekt Message
- Utwórz api do wysłania wiadomości
- Użyj metody Send do wysłania wiadomości
- Określ atrybut TimeToSend nowo utworzonej wiadomości
- Odczytaj odpowiedź na konsoli
- Sprawdź logi w bramce SMS
Zainstaluj Ozeki SMS Gateway i utwórz użytkownika HTTP API
Aby móc wysyłać SMS-y z Javy, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod Java w Apache NetBeans. 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 Java.
URL API HTTP do wysyłania SMS-ów z Javy
Aby wysyłać SMS-y z Javy, Twoja aplikacja Java będzie musiała 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 zainstalowany na tym samym komputerze, na którym działa aplikacja Java 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 Javy
Aby uwierzytelnić klienta Java do wysyłania SMS-ów, 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 Javie możesz użyć następującego kodu do wykonania tego kodowania:
var usernamePassword = username + ":" + password; var encodedUsernamePassword = usernamePassword.getBytes(); return "Basic " + Base64.getEncoder().encodeToString(encodedUsernamePassword);
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 zaplanowanych SMS-ów z Javy
Aby wysłać zaplanowaną wiadomość 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 SMS-ów z Javy
Aby przesłać SMS, Twoja aplikacja Java 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 HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA Connection: Upgrade, HTTP2-Settings Upgrade: h2c Content-Length: 320 Content-Type: application/json Accept: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 User-Agent: Java-http-client/16.0.1 { "messages": [ { "message_id": "5b9cea01-6bc0-42a7-9409-7b86eedf851b", "submit_report_requested": true, "view_report_requested": true, "valid_until": "2021-06-18 13:49:36", "time_to_send": "2021-06-11 13:52:00", "to_address": "+36201111111", "text": "Hello world!", "create_date": "2021-06-11 13:49:36", "delivery_report_requested": true } ] }
Odpowiedź HTTP otrzymana przez przykład SMS w Javie
Po otrzymaniu tego żądania, brama SMS 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.120 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Fri, 11 Jun 2021 13:37:11 GMT Server: 10/10.3.120 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": "5b9cea01-6bc0-42a7-9409-7b86eedf851b", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-06-11 13:49:36", "valid_until": "2021-06-18 13:49:36", "time_to_send": "2021-06-11 13:52:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Jak wysłać SMS z Javy przy użyciu API SMS w Javie (Samouczek wideo)
Ten film pokazuje, jak utworzyć nowy projekt w Apache NetBeans, jak nazwać go SendScheduledSms. Po utworzeniu rozwiązania możesz zauważyć, że w projekcie w folderze Source Packages znajduje się folder o nazwie <default package>. To tutaj utworzysz lub wkleisz plik Main.java. Następnie musisz wkleić folder Ozeki do folderu Source Packages i to wszystkie przygotowania potrzebne do wysłania SMS-a przy użyciu Javy.
Kod Java do wysyłania SMS-ów na telefon komórkowy
Poniższy przykładowy kod SMS w Javie demonstruje, jak można wysyłać SMS-y przy użyciu API SMS REST HTTP bramy SMS Ozeki za pomocą biblioteki Java Ozeki.Libs.Rest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym z Twoich projektów.
Main.javaimport Ozeki.Libs.Rest.*; import java.time.LocalDateTime; public class Main { public static void main(String[] args) { var configuration = new Configuration(); configuration.Username = "http_user"; configuration.Password = "qwe123"; configuration.ApiURL = "http://127.0.0.1:9509/api"; var msg = new Message(); msg.ToAddress = "+36201111111"; msg.Text = "Hello world!"; msg.TimeToSend = LocalDateTime.parse("2021-06-11T13:52:00"); var api = new MessageApi(configuration); var result = api.Send(msg); System.out.println(result); } }
Jak używać przykładu SMS w Javie:
Możesz użyć klasy Message do utworzenia SMS-a i możesz użyć klasy MessageApi, aby wysłać SMS do bramy SMS. Brama SMS przekaże Twoją wiadomość do sieci komórkowej albo przez połączenie bezprzewodowe, albo przez Internet.
Przykład SMS w Javie: Main.java
Jak sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP
Po przesłaniu SMS-a warto sprawdzić w swojej bramie SMS, co otrzymała. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP w konsoli zarządzania bramą SMS Ozeki. Poniższy film pokazuje, na co zwrócić uwagę.
Podsumowanie
Ten artykuł przybliżył temat planowania wysyłki SMS w Java z wykorzystaniem Ozeki SMS Gateway. Jeśli chcesz wysyłać wiadomości tekstowe o określonej porze, planowanie SMS może być bardzo pomocne. Korzystając z tego przewodnika i powyższego kodu, zdobędziesz całą niezbędną wiedzę i narzędzia, aby umożliwić planowanie SMS. Ozeki SMS Gateway pozwala na logowanie wiadomości w bazie danych i oferuje liczne możliwości raportowania, aby zapewnić Ci wszystkie potrzebne informacje na temat komunikacji SMS.
Kontynuuj czytanie na stronie z tutorialami Ozeki, gdzie znajdziesz więcej informacji na tematy takie jak odbieranie w Java.
Jedyne, co teraz pozostaje, to pobrać Ozeki SMS Gateway i zacząć pracę!
More information