Jak naplánovat SMS v Javě

Nejjednodušší způsob, jak odesílat SMS z Javy, 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 poté odešle tuto SMS příjemci a vrátí HTTP 200 OK odpověď na váš požadavek.

jak odeslat naplánovanou sms z javy
Obrázek 1 - Jak odeslat naplánovanou SMS z Javy

Java kód pro odeslání SMS na mobil

Ukázka kódu v Javě níže demonstruje, jak můžete odesílat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím knihovny Java Ozeki.Libs.Rest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli svém projektu.

Main.java
import 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 použít příklad odeslání SMS v Javě:

Můžete použít třídu Message k vytvoření SMS a třídu MessageApi k odeslání SMS na SMS bránu. SMS brána poté přepošle vaši zprávu do mobilní sítě buď prostřednictvím bezdrátového připojení nebo přes internet.

Stáhnout SendScheduledSms.java

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

Co obsahuje soubor SendScheduledSms.java.zip?

Soubor SendScheduledSms.java.zip obsahuje knihovnu Ozeki, která vám poskytuje všechny nástroje potřebné k odesílání a přijímání SMS zpráv. V projektu také najdete soubor Main.java, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.

Obrázek 2 - Adresář SendScheduledSms.java

Jak odeslat naplánovanou SMS z Javy (Rychlé kroky)

Pro odeslání naplánované SMS z Javy:

  1. Nainstalujte Ozeki SMS Gateway
  2. Připojte Ozeki SMS Gateway k mobilní síti
  3. Odešlete testovací SMS z Ozeki GUI
  4. Vytvořte HTTP SMS API uživatele
  5. Apache NetBeans
  6. Vytvořte projekt s názvem SendScheduledSms
  7. Vložte kód do nově vytvořeného souboru Main.java nebo použijte soubor Main.java v .zip
  8. Vytvořte SMS vytvořením nového objektu Message
  9. Vytvořte API pro odeslání vaší zprávy
  10. Použijte metodu Send k odeslání vaší zprávy
  11. Specifikujte atribut TimeToSend nově vytvořené zprávy
  12. Přečtěte si odpověď na konzoli
  13. Zkontrolujte logy v SMS bráně

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

Abyste mohli odesílat SMS z Javy, musíte nejprve nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj kód v Javě v Apache NetBeans. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací SMS z Ozeki GUI a ověřit, že vaše připojení k mobilní síti funguje. Posledním krokem k přípravě vašeho 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 kód v Javě.

HTTP API URL pro odesílání SMS z Javy

Pro odesílání SMS z Javy bude vaše Java aplikace muset odeslat HTTP požadavek na SMS bránu. API URL je uvedeno níže. Poznamenejte, že 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ěží Java 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 Javy

Pro autentizaci Java SMS klienta musíte 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 Javě můžete použít následující kód pro toto kódování:

var usernamePassword = username + ":" + password;
var encodedUsernamePassword = usernamePassword.getBytes();
return "Basic " + Base64.getEncoder().encodeToString(encodedUsernamePassword);
	

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í naplánované SMS z Javy

Pro odeslání naplánované SMS zprávy 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í SMS z Javy

Pro odeslání SMS bude vaše Java aplikace 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
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
	}
]
}
	

HTTP odpověď přijatá Java příkladem SMS

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.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 odeslat SMS z Javy pomocí Java SMS API (Video návod)

Toto video vám ukáže, jak vytvořit nový projekt v Apache NetBeans, jak jej pojmenovat na SendScheduledSms. Jakmile je projekt vytvořen, můžete si všimnout, že ve složce Source Packages je složka s názvem <default package>. Zde budete vytvářet nebo vkládat soubor Main.java. Poté musíte vložit složku Ozeki do složky Source Packages a to jsou všechny přípravy, které potřebujete k odeslání SMS pomocí Javy.

Video 1 - Jak stáhnout Ozeki.Libs.Rest a nastavit váš projekt (Video návod)

Java kód pro odeslání SMS na mobil

Níže uvedený Java příklad kódu pro SMS demonstruje, jak můžete odesílat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s využitím knihovny Java Ozeki.Libs.Rest. Tato knihovna je vám poskytována zdarma a můžete ji používat a upravovat v jakémkoli z vašich projektů.

Main.java
import 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 používat Java příklad pro SMS:

Můžete použít třídu Message k vytvoření SMS a třídu MessageApi k odeslání SMS do SMS brány. SMS brána přepošle vaši zprávu do mobilní sítě buď prostřednictvím bezdrátového připojení nebo přes internet.

Java příklad SMS: Main.java

Obrázek 3 - Projekt SendScheduledSms

Jak ověřit, že SMS byla přijata HTTP uživatelem

Po odeslání SMS je dobré zkontrolovat vaši SMS bránu, abyste viděli, co přijala. Protokol můžete zkontrolovat otevřením detailů HTTP uživatele v konzoli pro správu Ozeki SMS Gateway. Následující video vám ukáže, na co se zaměřit.

Video 2 - Jak odeslat naplánovanou SMS pomocí výše uvedeného Java kódu (Video návod)

Závěr

Tento článek poskytl náhled do plánování SMS v Javě pomocí Ozeki SMS Gateway. Pokud chcete odesílat textové zprávy v konkrétní čas, plánování SMS může být velmi užitečné. Pomocí tohoto průvodce a výše uvedeného kódu získáte všechny znalosti a nástroje potřebné k uskutečnění plánování SMS. Ozeki SMS Gateway umožňuje zaznamenávat zprávy do databáze a nabízí četné možnosti reportování, aby vám poskytl tolik informací, kolik potřebujete o SMS komunikaci.

Pokračujte ve čtení na tutoriálové stránce Ozeki, kde najdete více informací o tématech jako příjmu v Javě.

Jediné, co teď zbývá, je stáhnout Ozeki SMS Gateway a začít pracovat!

More information