Hogyan lehet SMS-t fogadni R-ből
A legegyszerűbb módja az SMS fogadásának 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, az SMS üzeneteket egy HTTP Get kérés kiadásával kapod meg az SMS gateway felé. A HTTP Get kérés tartalmaz egy mappát. Az SMS gateway elküldi az SMS üzeneteket az kliensnek, és egy HTTP 200 OK választ küld vissza a kérésedre.
R kód SMS fogadására mobilra
Az alábbi R SMS kód minta bemutatja, hogyan fogadhatsz 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ármely projektben felhasználhatod és módosíthatod.
ReceiveSms.Rlibrary(Ozeki.Libs.Rest) configuration <- Ozeki.Libs.Rest::Configuration$new( username = "http_user", password = "qwe123", api_url = "http://127.0.0.1:9509/api" ) api <- Ozeki.Libs.Rest::MessageApi$new(configuration) result <- api$download_incoming() print(result$to_string()) for (message in result$messages) { print(message$to_string()) }
Az R SMS példa használata:
Ez az R SMS példa bármely 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, hogy használd az Ozeki.Libs.Rest könyvtár által nyújtott osztályokat. A Message osztály segítségével létrehozhatod az SMS-t. A MessageApi osztály segítségével fogadhatod az SMS-t az SMS gateway felé. Az SMS gateway továbbítja az üzenetedet a mobil hálózat felé vezeték nélküli kapcsolaton vagy az interneten keresztül.
ReceiveSms.R letöltése
A cikkben ismertetett forráskód letölthető, felhasználható és módosítható ingyenesen.
Letöltés: ReceiveSms.R.zip (391B)
Mi található a ReceiveSms.R.zip fájlban?
A ReceiveSms.R.zip-ben található a ReceiveSms.R fájl, amely tartalmazza a példakódot, amely bemutatja, hogyan fogadj SMS-t. Ez a példakód az alábbiakban látható.
Hogyan fogadj 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 ReceiveSms.R.zip fájlt
- Indítsd el az Ozeki SMS Gateway alkalmazást
- Futtasd a ReceiveSms.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 fogadhass 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ármely szövegszerkesztőben, például a Windows notepad-ben. A telepítés után a következő lépés az, hogy csatlakoztad az Ozeki SMS Gateway-t a mobil hálózathoz. Fogadhatsz egy teszt SMS-t az Ozeki GUI-ból, hogy ellenőrizd, a mobil hálózati kapcsolatod működik-e. Az utolsó lépés a környezet előkészítéséhez az, hogy 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 az R kódodat.
HTTP API URL SMS fogadásához R-ből
Ahhoz, hogy SMS-t küldj R-ből, az R-nek HTTP kérést kell küldenie az SMS gateway felé. Az API URL az alábbiakban látható. Fontos, hogy az IP cím (127.0.0.1) helyett az SMS gateway IP címét kell használnod. 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 a számítógépnek az IP címét kell használnod.
http://127.0.0.1:9509/api?action=rest
HTTP hitelesítés SMS fogadásához R-ből
Az R SMS kliens hitelesítéséhez a felhasználónevet és jelszót egy base64 kódolt stringben kell elküldened a szervernek egy HTTP kérésben. A használt formátum: base64(username+":"+password). Az R-ben a következő kódot használhatod 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ódolt stringet kapod: aHR0cF91c2VyOnF3ZTEyMw==. A küldéshez
HTTP kérés fejléc SMS fogadásához R-ből
Az SMS üzenetek fogadásához a következő sorokat kell belefoglalnod fejlécként az HTTP kérésbe. Figyeld meg, hogy tartalmazunk egy content type és egy Authorization fejlécet.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP kérés SMS fogadásához R-ből
Az SMS beküldéséhez az R alkalmazásod egy olyan HTTP kérést küld, mint az alábbi. Figyeld meg, hogy ez a kérés tartalmaz egy HTTP fejléc részt, amely tartalmazza az összes szükséges adatot az üzenetek fogadásához egy adott mappából.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 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
HTTP válasz, amit 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 státuszkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Emellett egy JSON kódolt 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 15:29:23 GMT Server: 10/10.3.123 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "85a57d61-808a-481b-98d7-6136bf87dce0", "from_connection": "http_user@localhost", "from_address": "+36203333333", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "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" } ] }, { "message_id": "76d551d6-1096-4943-ae50-1efc71049b6f", "from_connection": "http_user@localhost", "from_address": "+36201111111", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "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" } ] }, { "message_id": "52af9742-f533-4056-a9cf-2fb8d4ef0613", "from_connection": "http_user@localhost", "from_address": "+36202222222", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "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" } ] } ] } }
Hogyan fogadj SMS-t R-ből az R SMS API segítségével (Videó útmutató)
Ez a videó bemutatja, hogyan töltheted le a ReceiveSms.R.zip fájlt erről az oldalról. Ha megnézed a videót, észreveszed, hogy a ReceiveSms.R.zip tartalma a Windows asztalra kerül. Azt is látni fogod, hogy a parancssort használjuk az SMS fogadásához.
R SMS példa: ReceiveSms.R
Az alábbi példakód a ReceiveSms.R 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 gateway-t, hogy lássad, mit kapott. A naplót az Ozeki SMS Gateway kezelőfelületén keresztül ellenőrizheted, ahol megnyithatod a HTTP felhasználó részleteit. A következő videó bemutatja, hogy mire kell figyelni.
Összegzés
Ennek az útmutatónak az volt a célja, hogy bemutassa az SMS fogadásának lépéseit R-ben az Ozeki SMS Gateway segítségével. Ez a megoldás lehetővé teszi, hogy az üzeneteket az Inbox mappából áthelyezd az R programodba, így ezek az üzenetek a céljuknak megfelelő helyre kerülhetnek. Az Ozeki SMS Gateway letölthető az Ozeki weboldaláról, és próbaidőszakban ingyenesen használható.
Ne felejtsd el folytatni az olvasást az Ozeki útmutató oldalán, ahol hasonló témájú cikkek találhatók, például SMS ütemezése R-ben.
Most már csak annyi van hátra, hogy letöltöd az Ozeki SMS Gateway-t és elkezded a munkát!
More information