Ako prijímať SMS v Jave

Najjednoduchší spôsob, ako odosielať 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 prijímať sms z javy
Obrázok 1 - Ako prijímať SMS z Javy

Java kód na odoslanie SMS na mobil

Vzorový kód Java sms nižšie demonštruje, ako môžete prijímať 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žívať a upravovať 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 api = new MessageApi(configuration);
        
        var result = api.DownloadIncoming();
        
        System.out.println(result);
    }
}
	

Ako použiť príklad Java sms:

Môžete použiť triedu MessageApi na prijatie SMS z SMS brány. SMS brána vám bude preposielať správy z priečinka Inbox.

Stiahnuť ReceiveSms.java

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

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

Súbor ReceiveSms.java.zip obsahuje knižnicu Ozeki, ktorá vám poskytuje všetky potrebné nástroje na odosielanie, označovanie, prijímanie a mazanie SMS správ. Nájdete tu tiež súbor Main.java v projekte, ktorý obsahuje príklad kódu, ktorý vám ukáže, ako prijímať SMS správy. Tento príklad kódu je uvedený nižšie.

Obrázok 2 - Priečinok ReceiveSms.java

Ako prijímať SMS z Javy (Rýchle kroky)

Na prijímanie 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 používateľa HTTP sms api
  5. Apache NetBeans
  6. Vytvorte projekt s názvom ReceiveSms
  7. Vložte kód do novo vytvoreného súboru Main.java alebo použite súbor Main.java v .zip
  8. Vytvorte api na prijímanie správ
  9. Použite metódu DownloadIncoming na prijatie vašej správy
  10. Prečítajte si odpoveď na konzole
  11. Skontrolujte záznamy v SMS bráne
Nainštalujte Ozeki SMS Gateway a vytvorte používateľa HTTP API

Ak chcete byť schopní odosielať, prijímať a mazať 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 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, aby ste overili, že vaše mobilné pripojenie funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie používateľa HTTP sms api. 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 kód v Jave.

HTTP API url na prijímanie SMS z Javy

Na prijímanie SMS z Javy bude vaša Java 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 tohto počítača.

http://127.0.0.1:9509/api?action=rest
	
HTTP autentifikácia na prijímanie SMS z Javy

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

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 reťazec zakódovaný v base64: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie

HTTP hlavička požiadavky na prijímanie SMS z Javy

Na odstránenie SMS správy musíte do hlavičky HTTP požiadavky zahrnúť nasledujúce riadky. Upozorňujeme, že zahrňujeme hlavičku Content-Type a Authorization.

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

HTTP požiadavka na prijímanie SMS z Javy

Na odstránenie SMS bude vaša Java aplikácia odosielať HTTP požiadavku podobnú ako tá nižšie. 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.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
HTTP2-Settings: AAEAAEAAAAIAAAABAAMAAABkAAQBAAAAAAUAAEAA
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
Content-Length: 0
Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Host: 127.0.0.1:9509
User-Agent: Java-http-client/16.0.1
	
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á 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": "",
	"data": {
	  "folder": "inbox",
	  "limit": "1000",
	  "data": [
	    {
	      "message_id": "0401f09a-5edb-4728-9bbc-0426fd9bea09",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36201111111",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-06-11 14:01:15",
	      "valid_until": "2021-06-18 14:01:15",
	      "time_to_send": "2021-06-11 14:01:15",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "5302e7df-18c4-4e01-82e7-181967bc8516",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36202222222",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-06-11 14:01:15",
	      "valid_until": "2021-06-18 14:01:15",
	      "time_to_send": "2021-06-11 14:01:15",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "95c60379-e541-4be1-b698-adfde4e425c8",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36203333333",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-06-11 14:01:15",
	      "valid_until": "2021-06-18 14:01:15",
	      "time_to_send": "2021-06-11 14:01:15",
	      "submit_report_requested": true,
	      "delivery_report_requested": true,
	      "view_report_requested": true,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}
	
Ako odoslať SMS z Javy pomocou Java SMS API (Video návod)

Toto video vám ukáže, ako vytvoriť nový projekt v Apache NetBeans, ako ho pomenovať na ReceiveSMS. 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, ktoré potrebujete na prijímanie SMS pomocou Javy.

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

Java príklad na prijímanie SMS: Main.java

Obrázok 3 - Projekt ReceiveSms

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

Po odoslaní požiadavky 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 prijímať SMS pomocou Java kódu vyššie (Video návod)/figcaption>

Zhrnutie

Hlavným cieľom tohto článku bolo demonštrovať prijímanie SMS v Jave s pomocou Ozeki SMS Gateway. Ak boli kroky dôsledne dodržané, prenos správ z doručenej pošty do Java programu používateľa už nemôže byť problémom. Ak chcete zhromažďovať prichádzajúce správy do Java programu, toto riešenie je perfektný spôsob, ako to urobiť. Ozeki SMS Gateway si môžete stiahnuť z webovej stránky Ozeki a môžete ho používať v skúšobnom období zadarmo, takže sa môžete uistiť, že táto aplikácia je pre vás.

Pokračujte v čítaní na stránke s návodmi Ozeki, podobné návody nájdete na témy ako mazanie v Jave.

Jediné, čo teraz musíte urobiť, je stiahnuť Ozeki SMS Gateway a nechať prácu začať!

More information