Hogyan kapjunk SMS-t Java nyelven

A legegyszerűbb módja az SMS küldésének Java nyelven az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, HTTP POST kérést küldesz az SMS gatewaynek. A HTTP POST kérés egy JSON formátumú üzenetet tartalmaz. Az SMS gateway továbbítja ezt az SMS-t a címzett telefonszámára, és egy HTTP 200 OK választ küld vissza a kérésedre.

hogyan kapjunk sms-t java nyelven
1. ábra - Hogyan kapjunk SMS-t Java nyelven

Java kód SMS küldésére mobilra

Az alábbi Java SMS kód minta bemutatja, hogyan lehet SMS-t fogadni az Ozeki SMS Gateway http rest sms api-jával, a Java Ozeki.Libs.Rest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető, és bármilyen projektben felhasználható és módosítható.

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);
    }
}
	

Hogyan használd a Java SMS példát:

A MessageApi osztály segítségével fogadhatod az SMS-t az SMS gatewaytől. Az SMS gateway továbbítja az üzeneteket a Beérkezett mappából.

ReceiveSms.java letöltése

A cikkben ismertetett forráskód letölthető, felhasználható és módosítható ingyenesen.
Letöltés: ReceiveSms.java.zip (89.6Kb)

Mi található a ReceiveSms.java.zip fájlban?

A ReceiveSms.java.zip fájl tartalmazza az Ozeki könyvtárat, amely minden szükséges eszközt biztosít az SMS-ek küldéséhez, jelöléséhez, fogadásához és törléséhez. A projektben találsz egy Main.java fájlt is, amely tartalmazza a példakódot, amely bemutatja, hogyan fogadj SMS-eket. Ez a példakód az alábbiakban látható.

2. ábra - ReceiveSms.java könyvtár

Hogyan kapjunk SMS-t Java nyelven (Gyors lépések)

Az SMS fogadásához Java nyelven:

  1. Telepítsd az Ozeki SMS Gateway-t
  2. Kapcsold az Ozeki SMS Gateway-t a mobil hálózathoz
  3. Küldj egy teszt SMS-t az Ozeki GUI-ból
  4. Hozz létre egy HTTP SMS API felhasználót
  5. Apache NetBeans
  6. Hozz létre egy ReceiveSms nevű projektet
  7. Helyezd a kódot egy újonnan létrehozott Main.java fájlba, vagy használd a .zip fájlban található Main.java fájlt
  8. Hozz létre egy API-t az üzenetek fogadásához
  9. A DownloadIncoming metódussal fogadd az üzeneted
  10. Olvasd el a válaszüzenetet a konzolon
  11. Ellenőrizd a naplókat az SMS gatewayben

Ozeki SMS Gateway telepítése és HTTP API felhasználó létrehozása

Ahhoz, hogy Java nyelven tudj SMS-eket küldeni, fogadni és törölni, először telepítened kell az Ozeki SMS Gateway-t. Az SMS gateway telepíthető ugyanarra a számítógépre, ahol a Java kódodat fejleszted az Apache NetBeans-ben. A telepítés után a következő lépés az, hogy csatlakoztad az Ozeki SMS Gateway-t a mobil hálózathoz. Küldhetsz egy teszt SMS-t az Ozeki GUI-ból, hogy ellenőrizd, a mobil hálózati kapcsolat működik-e. A környezet előkészítésének utolsó lépése, hogy létrehozol egy HTTP SMS API felhasználót. Hozz létre egy felhasználót "http_user" felhasználónévvel és "qwe123" jelszóval, hogy a példa módosítás nélkül működjön.

Miután a környezet be van állítva, futtathatod a Java kódodat.

HTTP API URL az SMS fogadásához Java nyelven

Ahhoz, hogy SMS-t fogadj Java nyelven, a Java alkalmazásodnak HTTP kérést kell küldenie az SMS gatewaynek. Az API URL az alábbiakban látható. Fontos, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét írd. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a Java SMS alkalmazás fut, ez lehet 127.0.0.1. Ha másik számítógépre van telepítve, akkor annak a számítógépnek az IP címét kell megadni.

http://127.0.0.1:9509/api?action=rest
	

HTTP hitelesítés az SMS fogadásához Java nyelven

A Java SMS kliens hitelesítéséhez a felhasználónevet és a jelszót egy base64 kódolt sztringben kell elküldeni a szervernek egy HTTP kérésben. A formátum: base64(username+":"+password). Java nyelven a következő kódot használhatod a kódoláshoz:

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

Például, ha a 'http_user' felhasználónevet és a 'qwe123' jelszót kódolod, a következő base64 kódolt sztringet kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc az SMS fogadásához Java nyelven

Az SMS üzenet törléséhez a következő sorokat kell belefoglalni a fejlécbe az HTTP kérésben. Figyeld meg, hogy tartalmazunk egy content type és egy Authorization fejlécet.

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

HTTP kérés SMS fogadásához Java nyelven

Az SMS törléséhez a Java alkalmazásod egy olyan HTTP kérést küld, mint az alábbi. Figyeld meg, hogy ez a kérés tartalmaz egy HTTP fejléc részt és egy http törzs részt. A HTTP törzs egy JSON kódolt adatsztring. Tartalmazza a címzett számát és az üzenet szövegét.

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 válasz, amit a Java SMS példa kap

Amint az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmaz egy státuszkódot, ami jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Egy JSON kódolt struktúrát is visszaad, ami hasznos részleteket nyújt az üzenet beküldéséről.

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"
	        }
	      ]
	    }
	  ]
	}
}
	

Hogyan küldjünk SMS-t Java nyelven a Java SMS API segítségével (Videó útmutató)

Ez a videó bemutatja, hogyan hozz létre egy új projektet az Apache NetBeans-ben, hogyan nevezd el ReceiveSMS-re. Miután a projekt létrejött, észreveheted, hogy a Source Packages mappában van egy <default package> nevű mappa. Ide kell létrehozni vagy beilleszteni a Main.java fájlt. Ezután be kell illeszteni az Ozeki mappát a Source Packages mappába, és ez minden előkészület, ami szükséges az SMS fogadásához Java nyelven.

1. videó - Hogyan töltsd le az Ozeki.Libs.Rest-et és állítsd be a projektet (Videó útmutató)

Java SMS fogadás példa: Main.java

3. ábra - ReceiveSms projekt

Hogyan ellenőrizd, hogy az SMS-t elfogadta-e az HTTP felhasználó

Miután elküldted a kérést, érdemes ellenőrizni az SMS gatewayt, hogy lássad, mit kapott. A naplót az Ozeki SMS Gateway kezelőfelületén az HTTP felhasználó részleteinek megnyitásával ellenőrizheted. A következő videó bemutatja, hogy mire kell figyelni.

2. videó - Hogyan fogadj SMS-t a fenti Java kóddal (Videó útmutató)

Összefoglalás

Ennek a cikknek a fő célja az volt, hogy bemutassa az SMS fogadását Java nyelven az Ozeki SMS Gateway segítségével. Ha figyelmesen követted a lépéseket, az üzenetek továbbítása a Beérkezett mappából a Java programodba már nem lehet probléma. Ha a beérkező üzeneteket egy Java programba szeretnéd gyűjteni, ez a megoldás tökéletes módja ennek. Az Ozeki SMS Gateway letölthető az Ozeki weboldaláról, és próbaidőszakban ingyenesen használható, így biztos lehetsz benne, hogy ez az alkalmazás neked való.

Folytasd az olvasást az Ozeki útmutató oldalán, hasonló útmutatók találhatók olyan témákban, mint törlés Java nyelven.

Most már csak annyi a teendő, hogy letöltöd az Ozeki SMS Gateway-t és elkezded a munkát!

More information