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.

hogyan kapjunk sms-t ruby nyelven
1. ábra - Hogyan kapjunk SMS-t Ruby nyelven

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.rb
require '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
	
Hogyan használd a Ruby SMS példát:

Ez a Ruby SMS példa bármilyen Ruby alkalmazásban használható. A használathoz le kell töltened az ozeki_libs_rest gem-et. A gem letöltése után hozzá kell adnod egy referenciát a Ruby forráskódodban. Ez lehetővé teszi az ozeki_libs_rest gem által nyújtott osztályok használatát. A Message osztály segítségével hozhatod létre az SMS-t. A MessageApi osztály segítségével elküldheted az SMS-t az SMS gateway-nek. Az SMS gateway továbbítja az üzenetedet a mobilhálózatnak vezeték nélküli kapcsolaton vagy az interneten keresztül.

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ó.

2. ábra - Mi található a ReceiveSms.rb.zip-ben

Hogyan küldjünk időzített SMS-t Ruby nyelven (Gyors lépések)

Időzített SMS küldése Ruby nyelven:

  1. Töltsd le a ReceiveSms.rb.zip fájlt
  2. Csomagold ki a .zip fájlt a Letöltések mappából
  3. Nyisd meg a ReceiveSms.rb fájlt bármilyen szövegszerkesztőben, például a Windows Jegyzettömbben
  4. Indítsd el az Ozeki SMS Gateway-t
  5. Hozz létre egy HTTP API felhasználót az Ozeki-ben
  6. Futtasd a ReceiveSms.rb Ruby kódot a parancssorból
  7. 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.

1. videó - Hogyan töltsd le és nyisd meg a fenti fájlt (Videó útmutató)

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.

3. ábra - ReceiveSms.rb fájl

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.

2. videó - Hogyan használd a ReceiveSms.rb fájlt (Videó útmutató)

Ö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