Hogyan küldjünk SMS-t Scalából
A legegyszerűbb módja az SMS küldésének Scalából 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 SMS küldésére mobilra
Az alábbi Scala SMS kód minta bemutatja, hogyan küldhetsz 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ármilyen projektben felhasználhatod és módosíthatod.
SendSms.scalaimport Ozeki.Libs.Rest.{ Configuration, Message, MessageApi } object main { def main(args: Array[String]): Unit = { val configuration = Configuration( Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api" ) val msg = Message( ToAddress = "+36201111111", Text = "Hello world!" ) 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ármilyen 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 mobilhálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.
SendSms.scala letöltése
A cikkben ismertetett forráskód ingyenesen letölthető, felhasználható és módosítható.
Letöltés: SendSms.scala.zip (96.4Kb)
Mi található a SendSms.scala.zip fájlban?
A SendSms.scala.zip-ben egy InteliJ projekt található forráskönyvtárral, és a forrás (src) könyvtárban megtalálod az Ozeki.Libs.Rest könyvtárat és a main.scala fájlt, 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ó)
Az SMS küldéséhez Scalából:
- Telepíts egy HTTP API felhasználót
- Kapcsold be 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 SendSms.scala.zip fájlt
- Nyisd meg a SendSms.scala projektet az InteliJ IDE-vel
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a SendSend.scala Scala kódot az IntelliJ IDE-ben
- Ellenőrizd a naplókat, hogy az SMS elküldődött-e
Telepítsd az Ozeki SMS Gateway-t és hozz létre egy HTTP API felhasználót
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ármilyen szövegszerkesztőben, például a Windows notepadben. 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ó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 az SMS küldéséhez Scalából
Az SMS küldéséhez Scalából a Scala alkalmazásodnak HTTP kérést kell küldenie az SMS gatewaynek. Az API URL az alábbiakban látható. Figyelj arra, hogy az IP cím (127.0.0.1) helyére az SMS gateway IP címét kell beírnod. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a Scala SMS alkalmazás fut, ez lehet 127.0.0.1. Ha másik számítógépre van telepítve, annak az IP címét kell megadnod.
http://127.0.0.1:9509/api?action=rest
HTTP hitelesítés az 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 ehhez 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 az SMS küldéséhez Scalából
Az SMS üzenetek 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 az 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. Figyelj arra, 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ú adatsor. 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: 327 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":"2f8aa62a-bdad-436b-a824-2aba0a79c39f", "to_address":"+36201111111", "text":"Hello world!", "create_date":"2021-07-15T08:59:28", "valid_until":"2021-07-22T08:59:28", "time_to_send":"+1000000000-01-01T00: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 tartalmaz egy státuszkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. 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.123 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Thu, 15 Jul 2021 08:08:03 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": "2f8aa62a-bdad-436b-a824-2aba0a79c39f", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-07-15 08:59:28", "valid_until": "2021-07-22 08:59:28", "time_to_send": "2021-07-15 08:59:28", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Csatlakoztasd az SMS gatewayed a mobilhálózathoz és hozz létre egy HTTP API felhasználói fiókot
Feltételezzük, hogy már telepítetted az Ozeki SMS Gateway-t, és csatlakoztattad a mobilhálózathoz. Ahhoz, hogy SMS-t tudj küldeni mobiltelefonra Scalából, létre kell hoznod egy HTTP API felhasználói fiókot az Ozeki SMS Gateway-ben.