Hogyan ütemezhetünk SMS-t Java nyelven

A legegyszerűbb módja 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, SMS üzeneteket küldhetsz HTTP POST kérések kiadásával az SMS gateway felé. A HTTP POST kérés egy JSON formátumban formázott ü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 küldjünk ütemezett sms-t java nyelven
1. ábra - Hogyan küldjünk ütemezett SMS-t Java nyelven

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

Az alábbi Java SMS kód minta bemutatja, hogyan küldhetsz SMS-t 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álhatod és módosíthatod.

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

A Java SMS példa használata:

A Message osztály segítségével hozhatod létre az SMS-t, és a MessageApi osztály segítségével elküldheted az SMS-t az SMS gatewaynek. Az SMS gateway továbbítja az üzenetedet a mobilhálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.

SendScheduledSms.java letöltése

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

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

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

2. ábra - SendScheduledSms.java könyvtárstruktúra

Hogyan küldjünk ütemezett SMS-t Java nyelven (Gyors lépések)

Ütemezett SMS küldése Java nyelven:

  1. Telepítsd az Ozeki SMS Gateway-t
  2. Kapcsold az Ozeki SMS Gateway-t a mobilhálózathoz
  3. Küldj egy teszt SMS-t az Ozeki grafikus felületéről
  4. Hozz létre egy HTTP SMS API felhasználót
  5. Telepítsd az Apache NetBeans-t
  6. Hozz létre egy SendScheduledSms 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. Hozd létre az SMS-t egy új Message objektum létrehozásával
  9. Hozz létre egy API-t az üzeneted küldéséhez
  10. Használd a Send metódust az üzeneted elküldéséhez
  11. Add meg az újonnan létrehozott üzenet TimeToSend attribútumát
  12. Olvasd el a válaszüzenetet a konzolon
  13. Ellenőrizd a naplókat az SMS gatewayben

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

Ahhoz, hogy SMS-t tudj küldeni Java nyelven, 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 mobilhálózathoz. 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állításra került, futtathatod a Java kódodat.

HTTP API URL SMS küldéséhez Java nyelven

Ahhoz, hogy SMS-t küldj 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 maradhat 127.0.0.1. Ha másik számítógépre van telepítve, annak IP címét kell megadni.

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

HTTP hitelesítés SMS küldéséhez Java nyelven

A Java SMS kliens hitelesítéséhez a felhasználónevet és jelszót base64 kódolású sztringként kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(felhasználónév+":"+jelszó). 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ódolású sztringet kapod: aHR0cF91c2VyOnF3ZTEyMw==.

HTTP kérés fejléc ütemezett SMS küldéséhez Java nyelven

Az ütemezett SMS üzenet küldéséhez a következő sorokat kell tartalmaznia a HTTP kérés fejlécének. Figyelj arra, hogy tartalomtípust és egy Authorization fejlécet is tartalmazunk.

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

HTTP kérés SMS küldéséhez Java nyelven

Az SMS beküldéséhez a Java alkalmazásod egy olyan HTTP kérést küld, mint az alábbi. Figyelj fel, 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ódolású adatsztring. Tartalmazza a címzett számát és az üzenet szövegét.

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 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, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Emellett egy JSON kódolású struktúrát is visszaad, amely 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": "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"
    }
  ]
}
}
	

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 SendScheduledSms-nek. Miután a megoldás 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 küldéséhez Java nyelven.

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

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

Az alábbi Java SMS kód minta bemutatja, hogyan küldhetsz SMS-t 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álhatod és módosíthatod.

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

A Java SMS példa használata:

A Message osztály segítségével hozhatod létre az SMS-t, és a MessageApi osztály segítségével elküldheted az SMS-t az SMS gatewaynek. Az SMS gateway továbbítja az üzenetedet a mobilhálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.

Java SMS példa: Main.java

3. ábra - SendScheduledSms projekt

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

Miután az SMS beküldésre került, érdemes ellenőrizni az SMS gatewayt, hogy lássad, mit kapott. A naplót az Ozeki SMS Gateway kezelőfelületén keresztül ellenőrizheted, a HTTP felhasználó részleteinek megnyitásával. A következő videó bemutatja, hogyan kell ezt megtenni.

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

Összegzés

Ez a cikk betekintést nyújtott az SMS ütemezésbe Java nyelven az Ozeki SMS Gateway segítségével. Ha szöveges üzeneteket szeretnél küldeni egy meghatározott időpontban, az SMS ütemezés nagyon hasznos lehet. Ezen útmutató és a fenti kód segítségével minden szükséges tudást és eszközt megkaphatsz az SMS ütemezés megvalósításához. Az Ozeki SMS Gateway lehetővé teszi az üzenetek adatbázisba történő naplózását és számos jelentéskészítési lehetőséget nyújt, hogy a lehető legtöbb információt kapd az SMS kommunikációról.

Folytasd az olvasást az Ozeki oktatóoldalán, ahol további információkat találhatsz olyan témákról, mint az fogadása 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