Jak wysłać wiele SMS-ów z Ruby

Najprostszym sposobem wysłania wielu SMS-ów z Ruby jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Kiedy używasz tego API, będziesz wysyłać wiadomości SMS poprzez wysłanie żądania HTTP Post do bramki SMS. Żądanie HTTP Post będzie zawierać wiadomość sformatowaną w formacie json. Bramka SMS wyśle tę wiadomość SMS na telefon odbiorcy i zwróci odpowiedź HTTP 200 OK na twoje żądanie.

jak wysłać wiele sms-ów z ruby
Rysunek 1 - Jak wysłać wiele SMS-ów z Ruby

Kod Ruby do wysłania wielu SMS-ów na telefon

Przykładowy kod SMS w Ruby poniżej demonstruje, jak możesz wysyłać SMS-y używając interfejsu http rest sms api Ozeki SMS Gateway z użyciem gema Ruby ozeki_libs_rest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym z twoich projektów.

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)
	

Jak użyć przykładu SMS w Ruby:

Ten przykład SMS w Ruby może być użyty w dowolnej aplikacji Ruby. Aby go użyć, musisz pobrać gem ozeki_libs_rest. Po pobraniu gema, trzeba dodać do niego referencję w swoim kodzie źródłowym Ruby. To pozwoli ci użyć klas dostarczonych przez gem ozeki_libs_rest. Możesz użyć klasy Message do stworzenia SMS-a. Możesz użyć klasy MessageApi do wysłania SMS-a do bramki SMS. Bramka SMS przekaże twoją wiadomość do sieci komórkowej albo przez połączenie bezprzewodowe, albo przez Internet.

Pobierz SendMultipleSms.rb

Kod źródłowy wyjaśniony w tym artykule może być pobrany, użyty i modyfikowany bezpłatnie.
Pobierz: SendMultipleSms.rb.zip (377B)

Co znajduje się w pliku SendMultipleSms.rb.zip?

SendMultipleSms.rb.zip zawiera plik SendMultipleSms.rb, który zawiera przykładowy kod pokazujący, jak wysłać SMS. Ten przykładowy kod jest wymieniony poniżej.

Rysunek 2 - Co znajduje się w SendMultipleSms.rb.zip

Jak wysłać wiele SMS-ów z Ruby (Szybkie kroki)

Aby wysłać wiele SMS-ów z Ruby:

  1. Pobierz plik SendMultipleSms.rb.zip
  2. Wypakuj plik .zip z folderu Pobrane
  3. Otwórz plik SendMultipleSms.rb w dowolnym edytorze tekstu, np. Windows Notepad
  4. Uruchom Ozeki SMS Gateway
  5. Utwórz użytkownika HTTP API w Ozeki
  6. Uruchom kod Ruby SendMultipleSms.rb za pomocą wiersza poleceń
  7. Sprawdź skrzynkę Wysłane w Ozeki SMS Gateway

Zainstaluj Ozeki SMS Gateway i utwórz użytkownika HTTP API

Aby móc wysyłać SMS-y z Ruby, najpierw musisz zainstalować Ozeki SMS Gateway. Bramka SMS może być zainstalowana na tym samym komputerze, na którym tworzysz swój kod Ruby w Visual Studio. Po instalacji, kolejnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testowego SMS-a z interfejsu Ozeki, aby sprawdzić, czy twoje połączenie z siecią komórkową działa. Ostatnim krokiem przygotowania środowiska jest utworzenie użytkownika HTTP sms api. Utwórz użytkownika z nazwą "http_user" i hasłem "qwe123", aby przykład działał bez modyfikacji.

Po skonfigurowaniu środowiska możesz uruchomić swój kod Ruby.

URL API HTTP do wysyłania SMS-ów z Ruby

Aby wysyłać SMS-y z Ruby, twoje Ruby będzie musiało wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Zauważ, że adres IP (127.0.0.1) powinien zostać zastąpiony adresem IP twojej bramki SMS. Jeśli Ozeki SMS Gateway jest zainstalowany na tym samym komputerze, na którym działa aplikacja Ruby SMS, może to być 127.0.0.1. Jeśli jest zainstalowany na innym komputerze, powinien to być adres IP tego komputera.

http://127.0.0.1:9509/api?action=rest
	

Uwierzytelnianie HTTP do wysyłania SMS-ów z Ruby

Aby uwierzytelnić klienta SMS Ruby, musisz wysłać nazwę użytkownika i hasło w zakodowanym ciągu base64 do serwera w żądaniu HTTP. Używany format to: base64(nazwa_użytkownika+":"+hasło). W Ruby możesz użyć następującego kodu do wykonania tego kodowania:

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

Na przykład, jeśli zakodujesz nazwę użytkownika 'http_user' i hasło 'qwe123', otrzymasz następujący zakodowany ciąg base64: aHR0cF91c2VyOnF3ZTEyMw==. Aby wysłać

Nagłówek żądania HTTP do wysyłania SMS-ów z Ruby

Aby wysłać wiadomości SMS, musisz dołączyć następujące linie jako nagłówki w żądaniu HTTP. Zauważ, że dołączamy typ zawartości i nagłówek Authorization.

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

Żądanie HTTP do wysłania SMS-a z Ruby

Aby wysłać SMS, Twoja aplikacja Ruby wyśle żądanie HTTP podobne do poniższego. Zauważ, że to żądanie zawiera część nagłówka HTTP i część ciała HTTP. Ciało HTTP to ciąg danych zakodowany w formacie JSON. Zawiera numer odbiorcy i tekst wiadomości.

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": []
    }
  ]
}

Odpowiedź HTTP otrzymana przez przykład SMS w Ruby

Gdy brama SMS odbierze to żądanie, wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, aby wskazać, czy żądanie wysłania SMS-a zakończyło się sukcesem czy nie. Zwróci również strukturę zakodowaną w formacie JSON, aby dostarczyć przydatne informacje na temat przesłania wiadomości.

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": "Wiadomości zakolejkowane do wysłania.",
  "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"
      }
    ]
  }
}
	

Przykład SMS w Ruby: SendMultipleSms.rb

Wideo 1 - Jak pobrać i otworzyć powyższe rozwiązanie (Samouczek wideo)

Poniższy przykładowy kod jest częścią pliku SendMultipleSms.rb.

Rysunek 3 - Plik SendMultipleSms.rb

Wideo 2 - Jak używać pliku SendMultipleSms.rb (Samouczek wideo)

Podsumowanie

Ten artykuł wyjaśnił kroki wysyłania wielu SMS-ów w Ruby z użyciem Ozeki SMS Gateway. Ta innowacja może być bardzo pomocna, jeśli chcesz wysłać wiadomości tekstowe do dużej liczby klientów jednocześnie. Synergia między kodami Ruby a Ozeki SMS Gateway zapewnia najwyższą możliwą wydajność. Ozeki SMS Gateway można pobrać ze strony Ozeki i używać w okresie próbnym bezpłatnie.

Upewnij się, że nie kończysz czytania tutaj, odwiedź stronę samouczków Ozeki, gdzie znajdziesz więcej informacji na tematy takie jak odbieranie w Ruby.

Teraz jedyne, co pozostaje, to pobrać Ozeki SMS Gateway i zacząć pracę!

More information