Hogyan ütemezhetünk SMS-t Scalában
A legegyszerűbb módja egy ütemezett SMS küldésének Scalában 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 fog tartalmazni. Az SMS gateway továbbítja ezt az SMS-t a címzett telefonjára, és egy HTTP 200 OK választ küld vissza a kérésedre.
Scala kód ütemezett SMS küldéséhez mobilra
Az alábbi Scala SMS kód minta bemutatja, hogyan küldhetsz ütemezett SMS-t az Ozeki SMS Gateway http rest sms API-jával, a Scala Ozeki.Libs.Rest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető, és bármely projektben felhasználhatod és módosíthatod.
SendScheduledSms.scalaimport Ozeki.Libs.Rest.{Configuration, Message, MessageApi} import java.time.LocalDateTime import java.time.format.DateTimeFormatter object main { def main(args: Array[String]): Unit = { val DateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") val configuration = Configuration( Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api" ) val msg = Message( ToAddress = "+36201111111", Text = "Hello world!", TimeToSend = LocalDateTime.parse("2021-07-14 16:30:00", DateFormat) ) val api = MessageApi(configuration) val result = api.Send(msg) println(result) } }
Hogyan használd a Scala SMS példát:
Ez a Scala SMS példa bármely Scala alkalmazásban használható. A használatához le kell töltened az Ozeki.Libs.Rest könyvtárat. A könyvtár letöltése után hozzá kell adnod egy referenciát a Scala forráskódodhoz. Ez lehetővé teszi az Ozeki.Libs.Rest könyvtár által nyújtott osztályok használatát. A Message osztály segítségével létrehozhatod az SMS-t. 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 mobil hálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.
SendScheduledSms.scala letöltése
A cikkben ismertetett forráskód ingyenesen letölthető, felhasználható és módosítható.
Letöltés: SendScheduledSms.scala.zip (91.4Kb)
Mi található a SendScheduledSms.scala.zip fájlban?
A SendScheduledSms.scala.zip-ben található a SendScheduledSms.scala fájl, amely tartalmazza a példakódot, amely bemutatja, hogyan küldj SMS-t. Ez a példakód az alábbiakban látható.
Hogyan küldjünk SMS-t Scalából (Egyszerű útmutató)
SMS küldése Scalából:
- Telepíts egy HTTP API felhasználót
- Engedélyezd a Kommunikációs események naplózását a Speciális lapon
- Állítsd be a Visual Studio-t
- Töltsd le, majd csomagold ki a SendScheduledSms.scala.zip fájlt
- Nyisd meg a SendScheduledSms.scala projektet az InteliJ IDE-val
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a SendScheduledSms.scala Scala kódot az IntelliJ IDE-ban
- Ellenőrizd a naplókat, hogy az SMS elküldődött-e
Ozeki SMS Gateway telepítése és HTTP API felhasználó létrehozása
Ahhoz, hogy SMS-t tudj küldeni Scalából, 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 Scala kódodat fejleszted bármely szövegszerkesztőben, például a Windows jegyzettömbjében. Telepítés után a következő lépés az, hogy csatlakoztassad az Ozeki SMS Gateway-t a mobil hálózathoz. létrehozz egy HTTP sms api felhasználói fiókot. 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 Scala kódodat.
HTTP API URL SMS küldéséhez Scalából
Ahhoz, hogy SMS-t küldj Scalából, a Scala kódodnak 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 az R 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 SMS küldéséhez Scalából
A Scala SMS kliens hitelesítéséhez a felhasználónevet és a jelszót base64 kódolású karakterláncként kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(username+":"+password). Scalában a következő kódot használhatod a kódoláshoz:
val usernamePassword = "%s:%s".format(Username, Password).getBytes() val usernamePasswordEncoded = Base64.getEncoder.encodeToString(usernamePassword) "Basic %s".format(usernamePasswordEncoded)
Például, ha a 'http_user' felhasználónevet és a 'qwe123' jelszót kódolod, a következő base64 kódolású karakterláncot kapod: aHR0cF91c2VyOnF3ZTEyMw==.
HTTP kérés fejléc SMS küldéséhez Scalából
Az SMS üzenetek küldéséhez a következő sorokat kell fejlécben tartalmaznod az HTTP kérésben. Figyeld meg, hogy tartalomtípust és egy Authorization fejlécet is tartalmazunk.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP kérés ütemezett SMS küldéséhez Scalából
Az SMS beküldéséhez a Scala alkalmazásod egy olyan HTTP kérést fog küldeni, 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ódolású adat karakterlánc. Tartalmazza a címzett számát, a szöveges üzenetet, valamint azt az időpontot is, amikor az SMS-t el szeretnénk küldeni.
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":"e2f650ee-90cc-43c5-885b-5ea4a0458381", "to_address":"+36201111111", "text":"Hello world!", "create_date":"2021-07-15T10:32:42", "valid_until":"2021-07-22T10:32:42", "time_to_send":"2021-07-15T11:00:00", "submit_report_requested": true, "view_report_requested": true, "delivery_report_requested": true } ] }
HTTP válasz, amit a Scala SMS példa kap
Amint az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmazni fog egy státuszkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Emellett visszaad egy JSON kódolású struktúrát is, amely hasznos részleteket nyújt az üzenet beküldéséről.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.123 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Thu, 15 Jul 2021 10:26:26 GMT Server: 10/10.3.123 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": "e2f650ee-90cc-43c5-885b-5ea4a0458381", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-07-15 10:32:42", "valid_until": "2021-07-22 10:32:42", "time_to_send": "2021-07-15 11:00: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 Scalából a Scala SMS API-val (Videó útmutató)
Ez a videó bemutatja, hogyan töltheted le a SendScheduledSms.scala.zip fájlt erről az oldalról. Ha megnézed a videót, észreveszed, hogy a SendScheduledSms.scala.zip tartalma a Windows asztalra kerül. Azt is látni fogod, hogy a parancssort használjuk az SMS küldéséhez.
Scala SMS példa: SendScheduledSms.scala
Az alábbi példakód a SendScheduledSms.scala része.
Hogyan ellenőrizd, hogy az SMS-t elfogadta-e a HTTP felhasználó
Az SMS beküldése után érdemes ellenőrizni az SMS gatewayt, hogy mit kapott. A naplót az Ozeki SMS Gateway kezelőfelületén, a HTTP felhasználó részleteinél tudod megtekinteni. A következő videó bemutatja, hogy mire kell figyelni.
Összefoglalás
Ennek a cikknek a fő funkciója az volt, hogy elmagyarázza az SMS ütemezés lépéseit Scalában az Ozeki SMS Gateway segítségével. Ha mindent figyelmesen elolvastál, az SMS ütemezés nagyon egyszerűnek kell lennie. A tökéletes időzítés fontos, ha nagy teljesítménnyel szeretnél dolgozni, mert így elkerülheted az ügyfelek forgalmas óráit, így nem fognak figyelmen kívül hagyni az üzeneteidet. Az Ozeki SMS Gateway lehetővé teszi az SMS költségek kezelését és az SMS forgalom nyomon követését.
Ne felejtsd el folytatni az olvasást az Ozeki oktatóoldalán, ahol további információkat találsz olyan témákról, mint az SMS törlése Scalában.
Most már csak annyi van hátra, hogy letöltsd az Ozeki SMS Gateway-t és kezdődhet a munka!
More information