Jak wysłać SMS z Ruby

Najprostszym sposobem na wysłanie SMS z Ruby jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Korzystając z 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ć sms z ruby
Rysunek 1 - Jak wysłać SMS z Ruby

Kod Ruby do wysyłania SMS na telefon

Poniższy przykładowy kod Ruby do wysyłania SMS demonstruje, jak możesz wysłać SMS używając interfejsu http rest sms api Ozeki SMS Gateway z wykorzystaniem 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.

SendSms.rb
require 'ozeki_libs_rest'

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

msg = Message.new
msg.to_address = "+36201111111"
msg.text = "Hello world!"

api = MessageApi.new(configuration)

result = api.send(msg)

print(result)
	

Kod 1 - SendSms.rb

Jak używać przykładu Ruby do wysyłania SMS:

Ten przykład Ruby do wysyłania SMS może być używany 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żywać klas dostarczonych przez gem ozeki_libs_rest. Możesz użyć klasy Message do stworzenia SMS. Możesz użyć klasy MessageApi, aby wysłać SMS do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej albo przez połączenie bezprzewodowe, albo przez Internet.

Pobierz SendSms.rb

Kod źródłowy omówiony w tym artykule może być pobrany, używany i modyfikowany bezpłatnie.
Pobierz: SendSms.rb.zip (316B)

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

W SendSms.rb.zip znajdziesz plik SendSms.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 SendSms.rb.zip

Jak zainstalować gem ozeki_libs_rest używając powłoki Windows

gem install ozeki_libs_rest
	

Kod 2 - Polecenie do zainstalowania gema ozeki_libs_rest

Wideo 1 - Jak zainstalować gem ozeki_libs_rest (Samouczek wideo)

Jak wysłać SMS z Ruby (Proste wskazówki)

Aby wysłać SMS z Ruby:

  1. Zainstaluj użytkownika HTTP API
  2. Włącz Logowanie zdarzeń komunikacyjnych w zakładce Zaawansowane
  3. Skonfiguruj Visual Studio
  4. Pobierz, a następnie rozpakuj plik SendSms.rb.zip
  5. Uruchom aplikację Ozeki SMS Gateway
  6. Uruchom kod Ruby SendSend.rb przy użyciu wiersza poleceń
  7. Sprawdź logi, aby zobaczyć, czy SMS został wysłany

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

Aby móc wysyłać SMS 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 dowolnym edytorze tekstu, takim jak Windows Notepad. Po instalacji następnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testową wiadomość SMS 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 z Ruby

Aby wysłać SMS 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 zainstalowana na tym samym komputerze, na którym działa aplikacja Ruby do wysyłania SMS, może to być 127.0.0.1. Jeśli jest zainstalowana 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 z Ruby

Aby uwierzytelnić klienta Ruby do wysyłania SMS, 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, aby wykonać to kodowanie:

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 z Ruby

Aby wysłać wiadomości SMS, należy dołączyć następujące linie jako nagłówki w żądaniu HTTP. Należy zauważyć, że zawieramy typ zawartości i nagłówek autoryzacji.

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

Żądanie HTTP do wysyłania SMS z Ruby

Aby przesłać SMS, Twoja aplikacja Ruby wyśle żądanie HTTP podobne do poniższego. Należy zauważyć, ż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: 339
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":	"2861551f-fddd-4b8e-9b06-eab9e1a0d179",
			"to_address":	"+36201111111",
			"text":	"Hello world!",
			"create_date":	"2021-07-06T09:09:44",
			"valid_until":	"2021-07-13T09:09:44",
			"time_to_send":	"2021-07-06T09:09:44",
			"is_submit_report_requested":	true,
			"is_delivery_report_requested":	true,
			"is_view_report_requested":	true,
			"tags":	[]
		}
	]
}
	

Odpowiedź HTTP otrzymana przez przykład SMS w Ruby

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

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 08:52:02 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "Messages queued for delivery.",
	"data": {
	  "total_count": 1,
	  "success_count": 1,
	  "failed_count": 0,
	  "messages": [
	    {
	      "message_id": "2861551f-fddd-4b8e-9b06-eab9e1a0d179",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world!",
	      "create_date": "2021-07-06 09:09:44",
	      "valid_until": "2021-07-13 09:09:44",
	      "time_to_send": "2021-07-06 09:09:44",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

Podłącz swoją bramkę SMS do sieci komórkowej i utwórz konto użytkownika HTTP API

Zakładamy, że masz już zainstalowaną bramkę SMS Ozeki i podłączoną do sieci komórkowej. Aby móc wysyłać SMS-y na telefon komórkowy z Ruby, musisz skonfigurować konto użytkownika HTTP API w bramce SMS Ozeki.

Wideo 2 - Jak skonfigurować konto użytkownika HTTP API (Samouczek wideo)

Jak wysłać SMS z Ruby przy użyciu API SMS Ruby (Samouczek wideo)

To wideo pokazuje, jak pobrać plik SendSms.rb.zip z tej strony. Jeśli obejrzysz wideo, zauważysz, że zawartość SendSms.rb zip jest umieszczana na pulpicie Windows. Zobaczysz również, że uruchamiamy wiersz poleceń, aby wysłać SMS.

Przykład SMS w Ruby: SendSms.rb

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

Rysunek 3 - Plik SendSms.rb

Jak sprawdzić, czy SMS został zaakceptowany przez użytkownika HTTP

Po przesłaniu SMS-a warto sprawdzić w bramce SMS, co otrzymała. Możesz sprawdzić log, otwierając szczegóły użytkownika HTTP w konsoli zarządzania bramką SMS Ozeki. Poniższe wideo pokazuje, na co zwrócić uwagę.

Wideo 4 - Jak wysłać SMS za pomocą powyższego kodu Ruby (Samouczek wideo)

Jak sprawdzić, czy SMS został wysłany do sieci komórkowej

Ostatnim krokiem weryfikacji procedury jest spojrzenie na logi połączenia z siecią komórkową. Może być konieczne włączenie logowania w konfiguracji połączenia przed wysłaniem wiadomości, aby zobaczyć logi. Jeśli logowanie jest włączone, zobaczysz numer telefonu i tekst wiadomości, którą wysłałeś.

Wideo 5 - Jak sprawdzić, czy żądanie zostało zaakceptowane przez klienta SMPP (Samouczek wideo)

Jak wygląda odbieranie wiadomości na Androidzie (Samouczek wideo)

W tym filmie zobaczysz proces odbierania wiadomości na Androidzie, gdy wiadomość została wysłana za pomocą Ozeki SMS Gateway. Film rozpocznie się od zwykłego ekranu głównego Androida i pokaże powiadomienie, które otrzymujesz w przypadku przychodzącej SMS, a następnie otwartą aplikację Wiadomości z SMS-em „Hello World”. Film trwa tylko 18 sekund, ale pokazuje cały proces.

Wideo 6 - Jak wygląda odbieranie wiadomości na Androidzie (Samouczek wideo)

Podsumowanie

Głównym celem tego artykułu było pokazanie kroków wysyłania SMS-ów w Ruby z pomocą Ozeki SMS Gateway. Dzięki tej innowacji możesz wysyłać wiadomości do swoich klientów, siedząc za komputerem, używając tylko Ozeki SMS Gateway i kodu Ruby. To rozwiązanie jest świetnym przykładem na to, jak łatwo kontrolować Ozeki SMS Gateway za pomocą kodów Ruby. Warto również wspomnieć, że Ozeki SMS Gateway działa w każdym kraju i może wysyłać i odbierać SMS-y przez różne połączenia mobilne.

Kontynuuj czytanie na stronie samouczka Ozeki, gdzie można znaleźć więcej informacji na tematy takie jak planowanie SMS-ów w Ruby.

Jedyne, co teraz pozostaje, to pobrać Ozeki SMS Gateway i zacząć pracę!

More information