Hogyan küldjünk több SMS-t R-ből
A legegyszerűbb módja több 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 több SMS üzenet mobilra küldéséhez
Az alábbi R SMS kód minta bemutatja, hogyan küldhetsz 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ő, és bármilyen projektben felhasználhatod és módosíthatod.
SendMultipleSms.Rlibrary(Ozeki.Libs.Rest) configuration <- Ozeki.Libs.Rest::Configuration$new( username = "http_user", password = "qwe123", api_url = "http://127.0.0.1:9509/api" ) msg1 <- Ozeki.Libs.Rest::Message$new() msg1$to_address <- "+36201111111" msg1$text <- "Hello world 1" msg2 <- Ozeki.Libs.Rest::Message$new() msg2$to_address <- "+36202222222" msg2$text <- "Hello world 2" msg3 <- Ozeki.Libs.Rest::Message$new() msg3$to_address <- "+36203333333" msg3$text <- "Hello world 3" api <- Ozeki.Libs.Rest::MessageApi$new(configuration) result <- api$send(list(msg1, msg2, msg3)) 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.
SendMultipleSms.R letöltése
A cikkben ismertetett forráskód ingyenesen letölthető, használható és módosítható.
Letöltés: SendMultipleSms.R.zip (407B)
Mi található a SendMultipleSms.R.zip fájlban?
A SendMultipleSms.R.zip-ben található a SendMultipleSms.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
- 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 SendMultipleSms.R.zip fájlt
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a SendMultipleSms.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 csatlakoztad az Ozeki SMS Gateway-t a mobilhálózathoz. HTTP SMS API felhasználói fiók létrehozása. 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 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ó. Fontos, 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, annak az IP címét kell használni.
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ó). Az 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==.
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 tartalmaznia az HTTP kérésnek. Figyelj rá, 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 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 rá, 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ú adatkarakterlánc. Tartalmazza a címzett számokat és az üzenetek szövegét, amelyeket küldtünk.
POST /api?action=sendmsg HTTP/1.1 Content-Length: 962 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": "fcb65595-06bd-41fe-84e5-f3f8912ff0a1", "to_address": "+36201111111", "text": "Hello world 1", "create_date": "2021-07-13T12:46:23", "valid_until": "2021-07-20T12:46:23", "time_to_send": "2021-07-13T12:46:23", "is_submit_report_requested": true, "is_delivery_report_requested": true, "is_view_report_requested": true }, { "message_id": "e14c1980-ca12-4d83-92f3-b25ebf6e1b97", "to_address": "+36202222222", "text":"Hello world 2", "create_date": "2021-07-13T12:46:23", "valid_until": "2021-07-20T12:46:23", "time_to_send": "2021-07-13T12:46:23", "is_submit_report_requested": true, "is_delivery_report_requested": true, "is_view_report_requested": true }, { "message_id": "5f7f0290-172a-446e-a9fe-cf6b22c84fe6", "to_address": "+36203333333", "text": "Hello world 3", "create_date": "2021-07-13T12:46:23", "valid_until": "2021-07-20T12:46:23", "time_to_send": "2021-07-13T12:46:23", "is_submit_report_requested": true, "is_delivery_report_requested": true, "is_view_report_requested": true } ] }
HTTP válasz, amelyet az R 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 á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 üzenetek 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:08:09 GMT Server: 10/10.3.123 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Messages queued for delivery.", "data": { "total_count": 3, "success_count": 3, "failed_count": 0, "messages": [ { "message_id": "fcb65595-06bd-41fe-84e5-f3f8912ff0a1", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Hello world 1", "create_date": "2021-07-13 12:46:23", "valid_until": "2021-07-20 12:46:23", "time_to_send": "2021-07-13 12:46:23", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "e14c1980-ca12-4d83-92f3-b25ebf6e1b97", "from_station": "%", "to_address": "+36202222222", "to_station": "%", "text": "Hello world 2", "create_date": "2021-07-13 12:46:23", "valid_until": "2021-07-20 12:46:23", "time_to_send": "2021-07-13 12:46:23", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" }, { "message_id": "5f7f0290-172a-446e-a9fe-cf6b22c84fe6", "from_station": "%", "to_address": "+36203333333", "to_station": "%", "text": "Hello world 3", "create_date": "2021-07-13 12:46:23", "valid_until": "2021-07-20 12:46:23", "time_to_send": "2021-07-13 12:46:23", "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 használatával (Videó útmutató)
Ez a videó bemutatja, hogyan töltheted le a SendMultipleSms.R.zip fájlt erről az oldalról. Ha megnézed a videót, észreveszed, hogy a SendMultipleSms.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: SendMultipleSms.R
Az alábbi példakód a SendMultipleSms.R része.
Hogyan ellenőrizzük, hogy az SMS-t elfogadta-e az HTTP felhasználó
Az SMS beküldése után érdemes ellenőrizni az SMS gatewayt, hogy lássuk, mit kapott. A naplót az Ozeki SMS Gateway kezelőfelületén az HTTP felhasználó részleteinek megnyitásával ellenőrizheted. Az alábbi videó bemutatja, hogy mire kell figyelni.
Összegzés
Ez a cikk az R-ből történő több SMS küldés lépéseit magyarázza el az Ozeki SMS Gateway segítségével. Ez a megoldás tökéletes több ügyfél elérésére egyetlen R kóddal. Javasolt ezt a tudást használni a hatékony információmegosztás érdekében. Az Ozeki SMS Gateway lehetővé teszi az SMS üzenetek adatbázisba történő naplózását és számos jelentéskészítési lehetőséget kínál az üzenetküldésről.
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