Hogyan küldjünk több SMS-t Ruby nyelven

A legegyszerűbb módja több SMS küldésének Ruby nyelven az Ozeki SMS Gateway beépített HTTP/Rest SMS API-jának használata. Amikor ezt az API-t használod, az SMS-eket HTTP POST kérések küldésével tudod elküldeni az SMS gateway felé. A HTTP POST kérés egy JSON formátumban formázott ü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 küldjünk több sms-t ruby nyelven
1. ábra - Hogyan küldjünk több SMS-t Ruby nyelven

Ruby kód több SMS mobilra küldéséhez

Az alábbi Ruby SMS kód minta bemutatja, hogyan küldhetsz 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 használható, és bármilyen projektben felhasználható és módosítható.

SendMultipleSms.rb
require 'ozeki_libs_rest'

configuration = Configuration.new(
    "http_user",
    "qwe123",
    "http://127.0.0.1:9509/api"
);

msg1 = Message.new
msg1.to_address = "+36201111111"
msg1.text = "Hello world 1"

msg2 = Message.new
msg2.to_address = "+36202222222"
msg2.text = "Hello world 2"

msg3 = Message.new
msg3.to_address = "+36203333333"
msg3.text = "Hello world 3"

api = MessageApi.new(configuration)

result = api.send([ msg1, msg2, msg3 ])

print(result)
	

Hogyan használd a Ruby SMS példát:

Ez a Ruby SMS példa bármilyen Ruby alkalmazásban használható. A használatához 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ódodhoz. 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ályt használhatod az SMS küldéséhez 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.

SendMultipleSms.rb letöltése

A cikkben ismertetett forráskód ingyenesen letölthető, használható és módosítható.
Letöltés: SendMultipleSms.rb.zip (377B)

Mi található a SendMultipleSms.rb.zip fájlban?

A SendMultipleSms.rb.zip tartalmazza a SendMultipleSms.rb fájlt, amely tartalmazza a példakódot, amely bemutatja, hogyan küldhetsz SMS-t. Ez a példakód az alábbiakban látható.

2. ábra - Mi található a SendMultipleSms.rb.zip fájlban

Hogyan küldjünk több SMS-t Ruby nyelven (Gyors lépések)

Több SMS küldése Ruby nyelven:

  1. Töltsd le a SendMultipleSms.rb.zip fájlt
  2. Csomagold ki a .zip fájlt a Letöltések mappából
  3. Nyisd meg a SendMultipleSms.rb fájlt bármilyen szövegszerkesztőben, például a Windows Jegyzettömbjében
  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 SendMultipleSms.rb Ruby kódot a parancssorból
  7. Ellenőrizd a Küldött 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 csatlakoztassad az Ozeki SMS Gateway-t a mobil hálózathoz. Küldhetsz egy teszt SMS-t az Ozeki GUI-ból annak ellenőrzésére, hogy a mobil hálózati kapcsolatod működik. A környezet előkészítésének utolsó lépése az, hogy létrehozz 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 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 felé. 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 be. Ha az Ozeki SMS Gateway ugyanarra a számítógépre van telepítve, ahol a Ruby SMS alkalmazás fut, ez maradhat 127.0.0.1. Ha másik számítógépre van telepítve, annak 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 jelszót base64 kódolású karakterláncként kell elküldeni a szerver felé egy HTTP kérésben. A formátum a következő: 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 tartalmaznia a HTTP kérés fejlécének. Figyelj arra, hogy a tartalomtípus és az Authorization fejléc is szerepel.

Content-Type: application/json
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
	

HTTP kérés SMS küldéséhez Ruby nyelven

Az SMS beküldéséhez a Ruby alkalmazásod egy olyan HTTP kérést küld, 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 és az üzenet szövegét.

POST /api?action=sendmsg HTTP/1.1
Content-Length: 992
Content-Type: application/json
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

{
  "messages": [
    {
      "message_id": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e",
      "to_address": "+36201111111",
      "text": "Hello, World 1",
      "create_date": "2021-06-11 13:08:26",
      "valid_until": "2021-06-18 13:08:26",
      "time_to_send": "2021-06-11 13:08:26",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    },
    {
      "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12",
      "to_address": "+362222222",
      "text": "Hello, World 2",
      "create_date": "2021-06-11 13:08:26",
      "valid_until": "2021-06-18 13:08:26",
      "time_to_send": "2021-06-11 13:08:26",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    },
    {
      "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9",
      "to_address": "+363333333",
      "text": "Hello, World 3",
      "create_date": "2021-06-11 13:08:26",
      "valid_until": "2021-06-18 13:08:26",
      "time_to_send": "2021-06-11 13:08:26",
      "submit_report_requested": true,
      "delivery_report_requested": true,
      "view_report_requested": true,
      "tags": []
    }
  ]
}

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 állapotkódot, amely jelzi, hogy az SMS beküldési kérés sikeres volt-e vagy sem. Ezen kívül egy JSON kódolású struktúrát is visszaad, amely hasznos részleteket nyújt az üzenet beküldéséről.

HTTP/1.1 200 OK
User-Agent: OZEKI 10.3.116 (www.myozeki.com)
Content-Type: application/json; charset=utf8
Last-Modified: Fri, 11 Jun 2021 13:06:37 GMT
Server: 10/10.3.116
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": "49aa6f3a-5d2a-4d53-bd63-9eb9da8bb23e",
        "from_station": "%",
        "to_address": "+36201111111",
        "to_station": "%",
        "text": "Hello, World 1",
        "create_date": "2021-06-11 13:08:26",
        "valid_until": "2021-06-18 13:08:26",
        "time_to_send": "2021-06-11 13:08:26",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "62098595-5ff8-4ca8-8b06-54f0fb31ee12",
        "from_station": "%",
        "to_address": "+362222222",
        "to_station": "%",
        "text": "Hello, World 2",
        "create_date": "2021-06-11 13:08:26",
        "valid_until": "2021-06-18 13:08:26",
        "time_to_send": "2021-06-11 13:08:26",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      },
      {
        "message_id": "f5b576ff-52b8-4de0-9677-4731769198f9",
        "from_station": "%",
        "to_address": "+363333333",
        "to_station": "%",
        "text": "Hello, World 3",
        "create_date": "2021-06-11 13:08:26",
        "valid_until": "2021-06-18 13:08:26",
        "time_to_send": "2021-06-11 13:08:26",
        "submit_report_requested": true,
        "delivery_report_requested": true,
        "view_report_requested": false,
        "tags": [
          {
            "name": "Type",
            "value": "SMS:TEXT"
          }
        ],
        "status": "SUCCESS"
      }
    ]
  }
}
	

Ruby SMS példa: SendMultipleSms.rb

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

Az alábbi példakód a SendMultipleSms.rb része.

3. ábra - SendMultipleSms.rb fájl

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

Összefoglalás

Ez a cikk bemutatta a több SMS küldésének lépéseit Ruby nyelven az Ozeki SMS Gateway segítségével. Ez az innováció nagyon hasznos lehet, ha egyszerre nagy számú ügyfélnek szeretnél szöveges üzeneteket küldeni. A Ruby kódok és az Ozeki SMS Gateway közötti szinergia biztosítja a lehető legjobb teljesítményt. Az Ozeki SMS Gateway letölthető az Ozeki weboldaláról, és próbaidőszakban ingyenesen használható.

Ne fejezd be itt az olvasást, látogass el az Ozeki útmutató oldalára, ahol további információkat találhatsz olyan témákról, mint az SMS fogadás 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