Ako naplánovať SMS v Jave

Najjednoduchší spôsob, ako odoslať SMS z Javy, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete odosielať SMS správy vydaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu formátovanú v json formáte. SMS brána odošle túto SMS na príjemcove telefónne číslo a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako odoslať naplánovanú sms z jazyka java
Obrázok 1 - Ako odoslať naplánovanú SMS z Javy

Java kód na odoslanie sms na mobil

Ukážka Java sms kódu nižšie demonštruje, ako môžete odosielať SMS pomocou http rest sms api Ozeki SMS Gateway pomocou knižnice Java Ozeki.Libs.Rest. Táto knižnica je poskytovaná bezplatne a môžete ju použiť a upraviť v akomkoľvek z vašich projektov.

Main.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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);
    }
}
     

Ako použiť Java sms príklad:

Môžete použiť triedu Message na vytvorenie SMS a môžete použiť triedu MessageApi na odoslanie SMS na SMS bránu. SMS brána prepošle vašu správu do mobilnej siete buď prostredníctvom bezdrôtového pripojenia alebo cez internet.

Stiahnuť SendScheduledSms.java

Zdrojový kód vysvetlený v tomto článku je možné stiahnuť, použiť a upraviť bezplatne.
Stiahnuť: SendScheduledSms.java.zip (80.2Kb)

Čo obsahuje súbor SendScheduledSms.java.zip?

Súbor SendScheduledSms.java.zip obsahuje knižnicu Ozeki, ktorá vám poskytuje všetky potrebné nástroje na odosielanie a prijímanie SMS správ. Nájdete tu aj súbor Main.java v projekte, ktorý obsahuje ukážkový kód, ktorý ukazuje, ako odoslať SMS. Tento ukážkový kód je uvedený nižšie.

Obrázok 2 - Adresár SendScheduledSms.java

Ako odoslať naplánovanú SMS z Javy (Rýchle kroky)

Na odoslanie naplánovanej sms z Javy:

  1. Nainštalujte Ozeki SMS Gateway
  2. Pripojte Ozeki SMS Gateway k mobilnej sieti
  3. Odošlite testovaciu sms z Ozeki GUI
  4. Vytvorte HTTP sms api používateľa
  5. Apache NetBeans
  6. Vytvorte projekt s názvom SendScheduledSms
  7. Vložte kód do novo vytvoreného súboru Main.java alebo použite súbor Main.java v .zip
  8. Vytvorte SMS vytvorením nového objektu Message
  9. Vytvorte api na odoslanie vašej správy
  10. Použite metódu Send na odoslanie vašej správy
  11. Zadajte atribút TimeToSend novo vytvorenej správy
  12. Prečítajte si odpoveď na konzole
  13. Skontrolujte záznamy v SMS bráne
Nainštalujte Ozeki SMS Gateway a vytvorte HTTP API používateľa

Na odosielanie SMS z Javy musíte najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnaký počítač, kde vyvíjate svoj Java kód v Apache NetBeans. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu sms z Ozeki GUI na overenie, či vaše mobilné pripojenie funguje. Posledným krokom na prípravu vášho prostredia je vytvorenie HTTP sms api používateľa. Vytvorte používateľa s používateľským menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.

Po nastavení prostredia môžete spustiť svoj Java kód.

HTTP API url na odoslanie sms z Javy

Na odosielanie SMS z Javy bude vaša Java aplikácia musieť vydať HTTP požiadavku na SMS bránu. API url je uvedené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaný na rovnakom počítači, kde beží Java sms aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaný na inom počítači, mala by to byť IP adresa toho počítača.

1
2
http://127.0.0.1:9509/api?action=rest
     
HTTP autentifikácia na odoslanie sms z Javy

Na autentifikáciu Java sms klienta musíte odoslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Použitý formát je: base64(username+":"+password). V Jave môžete na toto kódovanie použiť nasledujúci kód:

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

Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete nasledujúci base64 kódovaný reťazec: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie

HTTP hlavička požiadavky na odoslanie naplánovanej SMS z jazyka Java

Na odoslanie naplánovanej SMS správy musíte do hlavičky HTTP požiadavky zahrnúť nasledujúce riadky. Upozorňujeme, že obsahuje hlavičku typu obsahu a autorizačnú hlavičku.

1
2
3
Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
     
HTTP požiadavka na odoslanie SMS z jazyka Java

Na odoslanie SMS vaša Java aplikácia odošle HTTP požiadavku podobnú nižšie uvedenej. Upozorňujeme, že táto požiadavka obsahuje časť HTTP hlavičky a časť tela HTTP. Telo HTTP je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text správy.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 odpoveď prijatá Java príkladom SMS

Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Vráti tiež štruktúru zakódovanú v JSON, ktorá vám poskytne užitočné informácie o odoslaní správy.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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"
    }
  ]
}
}
     
Ako odoslať SMS z jazyka Java pomocou Java SMS API (Video návod)

Toto video vám ukáže, ako vytvoriť nový projekt v Apache NetBeans, ako ho pomenovať na SendScheduledSms. Keď je riešenie vytvorené, môžete si všimnúť, že v priečinku Source Packages sa nachádza priečinok s názvom <default package>. Sem vytvoríte alebo vložíte súbor Main.java. Potom musíte vložiť priečinok Ozeki do priečinka Source Packages a to sú všetky prípravy potrebné na odoslanie SMS pomocou jazyka Java.

Video 1 - Ako stiahnuť Ozeki.Libs.Rest a nastaviť váš projekt (Video návod)

Java kód na odoslanie SMS na mobil

Vzorový kód Java SMS nižšie demonštruje, ako môžete odoslať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway s použitím knižnice Java Ozeki.Libs.Rest. Táto knižnica je vám poskytovaná bezplatne a môžete ju používať a upravovať v akomkoľvek z vašich projektov.

Main.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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);
    }
}
     

Ako použiť príklad Java SMS:

Triedu Message môžete použiť na vytvorenie SMS a triedu MessageApi môžete použiť na odoslanie SMS do SMS brány. SMS brána prepošle vašu správu do mobilnej siete buď bezdrôtovým pripojením alebo cez internet.

Príklad Java SMS: Main.java

Obrázok 3 - Projekt SendScheduledSms

Ako skontrolovať, že SMS bola prijatá HTTP používateľom

Po odoslaní SMS je dobré skontrolovať vašu SMS bránu, aby ste videli, čo prijala. Protokol môžete skontrolovať otvorením detailov HTTP používateľa v konzole na správu Ozeki SMS Gateway. Nasledujúce video vám ukáže, čo hľadať.

Video 2 - Ako odoslať naplánovanú SMS s Java kódom vyššie (Video návod)

Záver

Tento článok poskytol náhľad na plánovanie SMS v jazyku Java pomocou Ozeki SMS Gateway. Ak chcete odosielať textové správy v konkrétnom čase, plánovanie SMS môže byť veľmi užitočné. Použitím tohto sprievodcu a vyššie uvedeného kódu získate všetky vedomosti a nástroje potrebné na realizáciu plánovania SMS. Ozeki SMS Gateway umožňuje zaznamenávať správy do databázy a ponúka množstvo možností reportovania, aby ste mali k dispozícii všetky potrebné informácie o SMS komunikácii.

Pokračujte v čítaní na stránke tutoriálov Ozeki, kde nájdete viac informácií o témach ako prijímanie SMS v jazyku Java.

Teraz už zostáva len stiahnuť si Ozeki SMS Gateway a začať pracovať!

More information