Ako poslať viacero SMS z Ruby

Najjednoduchší spôsob, ako poslať viacero SMS z Ruby, je použiť vstavané HTTP/Rest SMS API Ozeki SMS Gateway. Keď použijete toto API, budete posielať SMS správy vydaním HTTP POST požiadavky na SMS bránu. HTTP POST požiadavka bude obsahovať správu formátovanú v json formáte. SMS brána pošle túto SMS na telefón príjemcu a vráti HTTP 200 OK odpoveď na vašu požiadavku.

ako poslať viacero SMS z ruby
Obrázok 1 - Ako poslať viacero SMS z Ruby

Ruby kód na odoslanie viacerých SMS na mobil

Ukážka Ruby SMS kódu nižšie demonštruje, ako môžete posielať SMS pomocou HTTP REST SMS API Ozeki SMS Gateway pomocou Ruby gemu ozeki_libs_rest. Táto knižnica je poskytovaná bezplatne a môžete ju použiť a upraviť v akomkoľvek z vašich projektov.

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)
	

Ako použiť Ruby SMS príklad:

Tento Ruby SMS príklad môže byť použitý v akejkoľvek Ruby aplikácii. Na jeho použitie je potrebné stiahnuť gem ozeki_libs_rest. Po stiahnutí gemu je potrebné pridať odkaz naň vo vašom Ruby zdrojovom kóde. To vám umožní používať triedy poskytované gemom ozeki_libs_rest. Môžete použiť triedu Message na vytvorenie SMS. Môžete použiť triedu MessageApi na odoslanie SMS na SMS bránu. SMS brána prepošle vašu správu do mobilnej siete buď prostredníctvom bezdrôtového pripojenia alebo cez internet.

Stiahnuť SendMultipleSms.rb

Zdrojový kód vysvetlený v tomto článku môže byť stiahnutý, použitý a upravený bezplatne.
Stiahnuť: SendMultipleSms.rb.zip (377B)

Čo je v súbore SendMultipleSms.rb.zip?

SendMultipleSms.rb.zip obsahuje súbor SendMultipleSms.rb, ktorý obsahuje ukážkový kód, ktorý vám ukáže, ako odoslať SMS. Tento ukážkový kód je uvedený nižšie.

Obrázok 2 - Čo je vo vnútri SendMultipleSms.rb.zip

Ako poslať viacero SMS z Ruby (Rýchle kroky)

Na odoslanie viacerých SMS z Ruby:

  1. Stiahnite si súbor SendMultipleSms.rb.zip
  2. Extrahujte .zip súbor z priečinka Stiahnuté
  3. Otvorte súbor SendMultipleSms.rb v akomkoľvek textovom editore, napríklad Windows poznámkovom bloku
  4. Spustite Ozeki SMS Gateway
  5. Vytvorte HTTP API používateľa v Ozeki
  6. Spustite Ruby kód SendMultipleSms.rb pomocou príkazového riadku
  7. Skontrolujte priečinok Odoslané v Ozeki SMS Gateway
Inštalácia Ozeki SMS Gateway a vytvorenie HTTP API používateľa

Na odosielanie SMS z Ruby je potrebné najprv nainštalovať Ozeki SMS Gateway. SMS bránu je možné nainštalovať na rovnakom počítači, kde vyvíjate svoj Ruby kód v Visual Studio. Po inštalácii je ďalším krokom pripojenie Ozeki SMS Gateway k mobilnej sieti. Môžete odoslať testovaciu SMS z Ozeki GUI na overenie, že vaše mobilné pripojenie funguje. Posledným krokom pri príprave vášho prostredia je vytvorenie HTTP SMS API používateľského účtu. Vytvorte používateľa s menom "http_user" a heslom "qwe123", aby príklad fungoval bez úprav.

Po nastavení prostredia môžete spustiť svoj Ruby kód.

HTTP API URL na odosielanie SMS z Ruby

Na odosielanie SMS z Ruby bude vaše Ruby musieť vydať HTTP požiadavku na SMS bránu. API URL je uvedené nižšie. Upozorňujeme, že IP adresa (127.0.0.1) by mala byť nahradená IP adresou vašej SMS brány. Ak je Ozeki SMS Gateway nainštalovaný na rovnakom počítači, kde beží Ruby SMS aplikácia, môže to byť 127.0.0.1. Ak je nainštalovaný na inom počítači, mala by to byť IP adresa toho počítača.

http://127.0.0.1:9509/api?action=rest
	
HTTP autentifikácia na odosielanie SMS z Ruby

Na autentifikáciu Ruby SMS klienta je potrebné odoslať používateľské meno a heslo v base64 kódovanom reťazci na server v HTTP požiadavke. Použitý formát je: base64(používateľské meno+":"+heslo). V Ruby môžete na toto kódovanie použiť nasledujúci kód:

username_password = username + ':' + password
username_password_encoded = Base64.encode64(username_password)
'Basic ' + username_password_encoded
	

Napríklad, ak zakódujete používateľské meno 'http_user' a heslo 'qwe123', dostanete následujúci base64 kódovaný reťazec: aHR0cF91c2VyOnF3ZTEyMw==. Na odoslanie

HTTP hlavička požiadavky na odoslanie SMS z Ruby

Na odoslanie SMS správ je potrebné zahrnúť nasledujúce riadky ako hlavičky do HTTP požiadavky. Upozorňujeme, že zaraďujeme content type a Authorization hlavičku.

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

HTTP požiadavka na odoslanie SMS z Ruby

Na odoslanie SMS bude vaša Ruby aplikácia posielať HTTP požiadavku podobnú ako je uvedená nižšie. Všimnite si, že táto požiadavka obsahuje časť HTTP hlavičky a časť HTTP tela. Telo HTTP je reťazec dát zakódovaný v JSON. Obsahuje číslo príjemcu a text správy.

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 odpoveď prijatá Ruby príkladom SMS

Keď SMS brána prijme túto požiadavku, vygeneruje HTTP odpoveď. HTTP odpoveď bude obsahovať stavový kód, ktorý indikuje, či bola požiadavka na odoslanie SMS úspešná alebo nie. Tiež vráti štruktúru zakódovanú v JSON, ktorá poskytuje užitočné informácie o odoslaní správy.

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": "Správy zaradené do fronty na odoslanie.",
  "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 príklad SMS: SendMultipleSms.rb

Video 1 - Ako stiahnuť a otvoriť vyššie uvedené riešenie (Video návod)

Príklad kódu nižšie je súčasťou súboru SendMultipleSms.rb.

Obrázok 3 - Súbor SendMultipleSms.rb

Video 2 - Ako použiť súbor SendMultipleSms.rb (Video návod)

Zhrnutie

Tento článok vysvetlil kroky pre odoslanie viacerých SMS v Ruby s Ozeki SMS Gateway. Táto inovácia môže byť veľmi užitočná, ak chcete odosielať textové správy veľkému počtu zákazníkov naraz. Synergia medzi Ruby kódom a Ozeki SMS Gateway zaisťuje, že získate čo najvyšší výkon. Ozeki SMS Gateway je možné stiahnuť z webovej stránky Ozeki a môže byť používaný v skúšobnom období zadarmo.

Uistite sa, že tu nekončíte s čítaním, navštívte stránku s návodmi Ozeki, kde nájdete viac informácií o témach ako prijímanie v Ruby.

Teraz už len zostáva stiahnuť Ozeki SMS Gateway a môžete začať pracovať!

More information