Hogyan ütemezhetünk SMS-t R-ben
A legegyszerűbb módja az ütemezett SMS küldésének R-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.
R kód ütemezett SMS küldésére mobilra
Az alábbi R SMS kód minta bemutatja, hogyan küldhetsz ütemezett SMS-t az Ozeki SMS Gateway HTTP REST SMS API-jával az R Ozeki.Libs.Rest könyvtár segítségével. Ez a könyvtár ingyenesen elérhető számodra, és bármilyen projektben felhasználhatod és módosíthatod.
SendScheduledSms.Rlibrary(Ozeki.Libs.Rest) configuration <- Ozeki.Libs.Rest::Configuration$new( username = "http_user", password = "qwe123", api_url = "http://127.0.0.1:9509/api" ) msg <- Ozeki.Libs.Rest::Message$new() msg$to_address <- "+36201111111" msg$text <- "Hello world!" msg$time_to_send <- "2021-07-13T14:00:00" api <- Ozeki.Libs.Rest::MessageApi$new(configuration) result <- api$send(msg) print(result$to_string())
Az R SMS példa használata:
Ez az R SMS példa bármilyen R 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 hivatkozást kell felvenned rá az R forráskódodban. 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.
SendScheduledSms.R letöltése
A cikkben ismertetett forráskód ingyenesen letölthető, használható és módosítható.
Letöltés: SendScheduledSms.R.zip (391B)
Mi található a SendScheduledSms.R.zip fájlban?
A SendScheduledSms.R.zip-ben található a SendScheduledSms.R 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 R-ből (Egyszerű útmutató)
SMS küldése R-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.R.zip fájlt
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a SendScheduledSms.R R kódot a parancssorból
- 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 R-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 az R kódodat fejleszted bármilyen szövegszerkesztőben, például a Windows Jegyzettömbjében. A telepítés után a következő lépés az, hogy csatlakoztassuk 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állításra került, futtathatod az R kódodat.
HTTP API URL SMS küldéséhez R-ből
Ahhoz, hogy SMS-t küldj R-ből, az R-nek HTTP kérést kell küldenie az SMS gatewaynek. Az API URL az alábbiakban látható. Figyelj arra, hogy az IP-címet (127.0.0.1) le kell cserélni az SMS gateway IP-címére. 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 R-ből
Az R SMS kliens hitelesítéséhez a felhasználónevet és a jelszót base64 kódolású karakterláncként kell elküldeni a szervernek egy HTTP kérésben. A használt formátum: base64(felhasználónév+":"+jelszó). R-ben a következő kódot használhatod ehhez a kódoláshoz:
username_password <- paste(username, ":", password, sep="") username_password_encoded <- base64enc::base64encode(charToRaw(username_password)) return (paste("Basic", username_password_encoded, sep=" "))
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==. Az elküldéshez
HTTP kérés fejléc SMS küldéséhez R-ből
Az SMS üzenetek küldéséhez a következő sorokat kell fejlécben tartalmazni az HTTP kérésben. Figyelj arra, hogy egy 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 R-ből
Az SMS beküldéséhez az R 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, a szöveget és az üzenet küldési idejét.
POST /api?action=sendmsg HTTP/1.1 Content-Length: 329 Content-Type: application/json Accept: application/json Accept-Encoding: deflate, gzip Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 User-Agent: libcurl/7.64.1 r-curl/4.3.2 httr/1.4.2 { "messages": [ { "message_id": "5540aa51-c82d-4813-bbbe-d15919bb8b50", "to_address": "+36201111111", "text": "Hello world!", "create_date": "2021-07-13T12:46:23", "valid_until": "2021-07-20T12:46:23", "time_to_send": "2021-07-13T15:00:00", "is_submit_report_requested": true, "is_delivery_report_requested": true, "is_view_report_requested": true } ] }
HTTP válasz az R SMS példa által kapott
Miután az SMS gateway megkapja ezt a kérést, generál egy HTTP választ. A HTTP válasz tartalmaz egy állapotkó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, ami 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: Tue, 13 Jul 2021 14:44:12 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": "5540aa51-c82d-4813-bbbe-d15919bb8b50", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world!", "create_date": "2021-07-13 12:46:23", "valid_until": "2021-07-20 12:46:23", "time_to_send": "2021-07-13 15:00:00", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Hogyan küldjünk SMS-t R-ből az R SMS API-val (Videó útmutató)
Ez a videó bemutatja, hogyan töltheted le a SendScheduledSms.R.zip fájlt erről az oldalról. Ha megnézed a videót, észreveszed, hogy a SendScheduledSms.R.zip tartalma a Windows asztalra kerül. Azt is látni fogod, hogy a parancssort használjuk az SMS küldéséhez.
R SMS példa: SendScheduledSms.R
Az alábbi példakód a SendScheduledSms.R része.
Hogyan ellenőrizhetjük, 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 keresztül tekintheted meg, ahol megnyithatod a HTTP felhasználó részleteit. Az alábbi videó bemutatja, hogy mire kell figyelni.
Összefoglalás
A fenti cikk célja az volt, hogy elmagyarázza az SMS ütemezés lépéseit R-ben az Ozeki SMS Gateway segítségével. Ezzel a megoldással lehetőség van az üzenetek elhalasztására, így tökéletes időben érheted el az ügyfeleket, amikor nem elfoglaltak és észreveszik az üzenetedet. Így javítható a teljesítmény és az ügyfélbarát kép. Az Ozeki SMS Gateway egy olyan környezetben fut, amelyet te irányítasz, így a névjegyzék és az adatok biztonságban vannak.
Folytasd 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 R-ben.
Most már csak annyi a teendő, hogy letöltöd az Ozeki SMS Gateway-t és elkezded a munkát!
More information