Ako poslať SMS z Javy

Najjednoduchší spôsob, ako poslať SMS z Javy, je použiť vstavanú HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete posielať 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 pošle túto SMS príjemcovi a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako poslať sms z javy
Obrázok 1 - Ako poslať SMS z Javy

Java kód na odoslanie sms na mobil

Ukážka Java sms kódu nižšie demonštruje, ako môžete posielať 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
import Ozeki.Libs.Rest.*;

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";

        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ď cez bezdrôtové pripojenie alebo cez internet.

Stiahnuť SendSms.java

Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: SendSms.java.zip (89.3Kb)

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

Súbor SendSms.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ý vám ukáže ako poslať SMS. Tento ukážkový kód je uvedený nižšie.

adresár send sms java
Obrázok 2 - Adresár SendSms.java

Ako poslať SMS z Javy (Rýchle kroky)

Na odoslanie 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 SendSms
  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. Prečítajte si odpoveď na konzole
  12. 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 rovnakom počítači, 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, že 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 odoslanie SMS z Javy bude vaša Java musieť vydať HTTP požiadavku na SMS bránu. API url je zobrazené 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.

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 použiť nasledujúci kód na toto kódovanie:

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 SMS z Javy

Na odoslanie SMS správ musíte zahrnúť nasledujúce riadky ako hlavičky do HTTP požiadavky. Upozorňujeme, že zaraďujeme content type a Authorization hlavičku.

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

HTTP požiadavka na odoslanie SMS z Javy

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

POST /api?action=sendmsg HTTP/1.1
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
Content-Length: 319
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":"f5035474-77d7-4be0-9ace-14bf3105940e",
			"submit_report_requested":true,
			"view_report_requested":true,
			"valid_until":"2021-06-18 13:37:47",
			"time_to_send":"2021-06-11 13:37:47",
			"to_address":"+36201111111",
			"text":"Hello world",
			"create_date":"2021-06-11 13:37:47",
			"delivery_report_requested":true
		}
	]
}

	

HTTP odpoveď prijatá Java SMS príkladom

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. Taktiež vráti štruktúru zakódovanú v JSON, ktorá poskytne užitočné informácie o odoslaní sprá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": "f5035474-77d7-4be0-9ace-14bf3105940e",
      "from_station": "%",
      "to_address": "+36201111111",
      "to_station": "%",
      "text": "Hello world",
      "create_date": "2021-06-11 13:37:47",
      "valid_until": "2021-06-18 13:37:47",
      "time_to_send": "2021-06-11 13:37:47",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": false,
      "tags": [
        {
          "name": "Type",
          "value": "SMS:TEXT"
        }
      ],
      "status": "SUCCESS"
    }
  ]
}
}
	

Ako odoslať SMS z Javy pomocou Java SMS API (Video tutoriál)

Toto video vám ukáže, ako vytvoriť nový projekt v Apache NetBeans, ako ho pomenovať na SendSms. Keď je riešenie vytvorené, môžete si všimnúť, že vo vašom projekte v priečinku Source Packages je priečinok s názvom <default package>. Sem budete vytvárať alebo vkladať 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 Javy.

Video 1 - Ako odoslať SMS z Javy pomocou Java SMS API (Video tutoriál)

Java SMS príklad: Main.java

Obrázok 3 - Projekt SendSms

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. Log 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ť SMS s vyššie uvedeným Java kódom (Video tutoriál)

Ako skontrolovať, že SMS bola odoslaná do mobilnej siete

Posledným krokom pri overovaní postupu je pozrieť sa na logy mobilného pripojenia. Možno budete musieť zapnúť logovanie v konfigurácii pripojenia pred odoslaním správy, aby ste videli logy. Ak je logovanie zapnuté, uvidíte telefónne číslo a text správy, ktorú ste odoslali.

Video 3 - Ako zapnúť logovanie v Ozeki SMS Gateway (Video tutoriál)

Na zapnutie logovania v http_user musíte postupovať podľa rovnakých inštrukcií.

Záver

Tento článok vysvetlil základy odosielania SMS v Jave s pomocou Ozeki SMS Gateway. Ak boli kroky vyššie dôsledne dodržané, odosielanie správ v Jave by nemalo spôsobovať žiadne obavy. Ozeki SMS Gateway ponúka vysoký výkon, čo znamená, že dokáže odoslať až 1000 SMS za sekundu, takže určite pomôže vašej spoločnosti udržať vysoký štandard.

Uistite sa, že čítanie tu nekončí, navštívte stránku s tutoriálmi Ozeki a dozviete sa viac o veciach ako mazaní SMS v Jave.

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

More information