Hogyan kapjunk SMS-t Ruby nyelven
A legegyszerűbb módja az SMS-ek fogadásának Ruby nyelven az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, HTTP POST kérést küldesz az SMS gateway-nek. A HTTP POST kérés egy JSON formátumú üzenetet tartalmaz. 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.
Ruby kód SMS-ek fogadásához
Az alábbi Ruby SMS kód minta bemutatja, hogyan küldhetsz időzített SMS-t az Ozeki SMS Gateway HTTP REST SMS API-jával, a Ruby ozeki_libs_rest gem segítségével. Ez a könyvtár ingyenesen elérhető, és bármilyen projektben felhasználhatod és módosíthatod.
ReceiveSms.rbrequire 'ozeki_libs_rest' configuration = Configuration.new( "http_user", "qwe123", "http://127.0.0.1:9509/api" ); api = MessageApi.new(configuration) result = api.download_incoming() print(result, "\n") result.messages.each do |message| print(message, "\n") end
ReceiveSms.rb letöltése
A cikkben ismertetett forráskód ingyenesen letölthető, felhasználható és módosítható.
Letöltés: ReceiveSms.rb.zip (319B)
Mi található a ReceiveSms.rb.zip fájlban?
A ReceiveSms.rb.zip tartalmazza a ReceiveSms.rb fájlt, amely az SMS küldését bemutató példakódot tartalmaz. Ez a példakód az alábbiakban látható.
Hogyan küldjünk időzített SMS-t Ruby nyelven (Gyors lépések)
Időzített SMS küldése Ruby nyelven:
- Töltsd le a ReceiveSms.rb.zip fájlt
- Csomagold ki a .zip fájlt a Letöltések mappából
- Nyisd meg a ReceiveSms.rb fájlt bármilyen szövegszerkesztőben, például a Windows Jegyzettömbben
- Indítsd el az Ozeki SMS Gateway-t
- Hozz létre egy HTTP API felhasználót az Ozeki-ben
- Futtasd a ReceiveSms.rb Ruby kódot a parancssorból
- Ellenőrizd a Sent mappát az Ozeki SMS Gateway-ben
Ozeki SMS Gateway telepítése és HTTP API felhasználó létrehozása
Ahhoz, hogy SMS-t tudj küldeni Ruby nyelven, 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 Ruby kódodat fejleszted a Visual Studio-ban. A telepítés után a következő lépés az, hogy csatlakoztad az Ozeki SMS Gateway-t a mobilhálózathoz. Küldhetsz egy teszt SMS-t az Ozeki GUI-ból annak ellenőrzésére, hogy a mobilhálózati kapcsolatod működik. A környezet előkészítésének utolsó lépése 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 a Ruby kódodat.
HTTP API URL SMS küldéséhez Ruby nyelven
Ahhoz, hogy SMS-t küldj Ruby nyelven, a Ruby alkalmazásodnak HTTP kérést kell küldenie az SMS gateway-nek. 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 a Ruby SMS alkalmazás fut, ez lehet 127.0.0.1. Ha másik számítógépre van telepítve, akkor annak 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 Ruby nyelven
A Ruby 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ó). Ruby nyelven a következő kódot használhatod a kódoláshoz:
username_password = username + ':' + password username_password_encoded = Base64.encode64(username_password) 'Basic ' + username_password_encoded
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 Ruby nyelven
Az SMS-ek küldéséhez 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 Ruby nyelven
Az érkező SMS-ek lekéréséhez a Ruby alkalmazásod egy olyan HTTP kérést küld, mint az alábbi. Figyeld meg, hogy ez a kérés csak egy HTTP fejléc részt tartalmaz.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Accept: application/json Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 User-Agent: Faraday v1.5.0
HTTP válasz, amit a Ruby 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, ami 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 üzenetekről.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.123 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Tue, 06 Jul 2021 14:49:32 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": "4524cd1f-f048-4b78-99ec-37bd906e676d", "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-06 14:47:37", "valid_until": "2021-07-13 14:47:37", "time_to_send": "2021-07-06 14:47:37", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "e3125586-3d66-4f91-ac4e-66747653fe24", "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-06 14:47:37", "valid_until": "2021-07-13 14:47:37", "time_to_send": "2021-07-06 14:47:37", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "98895df5-4972-4941-8bf3-5fb0302d1fa8", "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-06 14:47:37", "valid_until": "2021-07-13 14:47:37", "time_to_send": "2021-07-06 14:47:37", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] } ] } }
Ruby SMS példa: ReceiveSms.rb
Ebben a videóban láthatod a ReceiveSMS.rb letöltésének folyamatát ebből az oktatóanyagból. A megnyitott oldallal kezdődik, és a megnyitott projekttel ér véget. A videó mindössze 30 másodperc hosszú, de tartalmazza az összes szükséges információt a példaprojekt letöltéséhez. Könnyen érthető és részletes. Nem lesz gondod a lépések követésével.
Példakód
Az alábbi példakód a ReceiveSms.rb része. Ha ismered a Ruby programozási nyelvet, nyugodtan módosíthatod a példaprojektet saját ízlésed szerint, és elküldheted az első teszt üzeneted.
Hogyan használd a példaprojektet
A következő videóban láthatod, hogyan küldhetsz üzenetet a példaprojekt segítségével. A videó egy megnyitott Jegyzettömbbl indul, benne a forráskóddal. A videó végén látni fogod a fogadott üzeneteket. A videó mindössze 1 perc hosszú, de megtanulod az összes szükséges lépést a folyamat befejezéséhez. A videó nagyon részletes, így nem lesz gondod a lépések követésével.
Összefoglalás
Ennek az útmutatónak az volt a célja, hogy elmagyarázza az SMS fogadás lépéseit Ruby nyelven az Ozeki SMS Gateway segítségével. Néhány egyszerű lépéssel továbbíthatod az üzeneteket az inbox mappából egy Ruby programba. Ez a megoldás fontos, ha ezeket az üzeneteket külön helyen szeretnéd gyűjteni. 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 hasonló témákról, mint például az több SMS küldése Ruby nyelven.
Most már csak egy dolgot kell tenned: töltsd le az Ozeki SMS Gateway-t és kezdődhet a munka!
More information
- Ruby SMS küldés a HTTP rest API-val (kód minta)
- Ruby több SMS küldés a HTTP rest API-val (kód minta)
- Ruby SMS ütemezés a HTTP rest API-val (kód minta)
- Ruby SMS fogadás a HTTP rest API-val (kód minta)
- Ruby SMS törlés a HTTP rest API-val (kód minta)
- Hogyan töltsd le a legújabb Ruby SMS könyvtárat Githubról
- Ruby SMS küldés Linuxról