Jak zaplanować wysłanie SMS-a w Ruby

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

jak zaplanować wysłanie sms w ruby
Rysunek 1 - Jak zaplanować wysłanie SMS-a w Ruby

Kod Ruby do wysłania zaplanowanego SMS-a na telefon

Poniższy przykładowy kod Ruby do wysyłania SMS-ów demonstruje, jak można wysłać zaplanowanego SMS-a przy użyciu interfejsu HTTP REST SMS API Ozeki SMS Gateway z wykorzystaniem gema ozeki_libs_rest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym projekcie.

SendScheduledSms.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!"
msg.time_to_send = DateTime.parse('2021-07-06T013:00:00')

api = MessageApi.new(configuration)

result = api.send(msg)

print(result)
	

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

Ten przykład SMS w Ruby może być używany w dowolnej aplikacji Ruby. Aby go użyć, musisz pobrać gem ozeki_libs_rest. Po pobraniu gema należy dodać do niego referencję w swoim kodzie źródłowym Ruby. Pozwoli to na korzystanie z klas dostarczonych przez gem ozeki_libs_rest. Możesz użyć klasy Message do stworzenia SMS-a. Możesz użyć klasy MessageApi, aby wysłać SMS-a do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej poprzez połączenie bezprzewodowe lub przez Internet.

Pobierz SendScheduledSms.rb

Kod źródłowy omówiony w tym artykule można pobrać, używać i modyfikować bezpłatnie.
Pobierz: SendScheduledSms.rb.zip (373B)

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

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

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

Jak wysłać zaplanowanego SMS-a z Ruby (Szybkie kroki)

Aby wysłać zaplanowanego SMS-a z Ruby:

  1. Pobierz plik SendScheduledSms.rb.zip
  2. Wypakuj plik .zip z folderu Pobrane
  3. Otwórz plik SendScheduledSms.rb w dowolnym edytorze tekstu, np. Windows Notatnik
  4. Uruchom Ozeki SMS Gateway
  5. Utwórz użytkownika HTTP API w Ozeki
  6. Uruchom kod Ruby SendScheduledSms.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 następnym krokiem jest podłączenie Ozeki SMS Gateway do sieci komórkowej. Możesz wysłać testowego SMS-a z interfejsu Ozeki, aby sprawdzić, czy 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, Twoja aplikacja Ruby będzie musiała wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Należy zauważyć, ż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-ów, 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-ów z Ruby

Aby uwierzytelnić klienta SMS w 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 uwzględnić następujące linie jako nagłówki w żądaniu HTTP. Należy zauważyć, że zawieramy nagłówek Content-Type i 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: 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":	"f0f02105-0a78-46a9-ae14-f0728bac2aa6",
			"to_address":	"+36201111111",
			"text":	"Hello world!",
			"create_date":	"2021-07-06T14:32:21",
			"valid_until":	"2021-07-13T14:32:21",
			"time_to_send":	"2021-07-06T13:00:00",
			"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-a zakończyło się sukcesem czy nie. Zwróci również strukturę zakodowaną w JSON, aby dostarczyć Ci przydatne informacje o wysł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 14:26:41 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": "f0f02105-0a78-46a9-ae14-f0728bac2aa6",
	      "from_station": "%",
	      "to_address": "+36201111111",
	      "to_station": "%",
	      "text": "Hello world!",
	      "create_date": "2021-07-06 14:32:21",
	      "valid_until": "2021-07-13 14:32:21",
	      "time_to_send": "2021-07-06 13:00:00",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

Przykład SMS w Ruby: SendScheduledSms.rb

W poniższym filmie prezentujemy proces pobierania kodu źródłowego projektu. Film rozpocznie się od pobrania plików projektu i przeprowadzi Cię aż do otwarcia pliku projektu. Film pokaże Ci, jak pobrać plik projektu i otworzyć go za pomocą Notatnika. Ten 36-sekundowy film jest szczegółowy i zawiera wszystkie informacje potrzebne do pomyślnego zakończenia procesu pobierania.

Wideo 1 - Jak pobrać i otworzyć powyższy plik (Samouczek wideo)

Przykładowy kod

Poniższy przykładowy kod jest częścią pliku SendScheduledSms.rb. Możesz zmodyfikować przykładowy projekt, znajdując odpowiednią linię i zastępując część kodu odpowiednimi danymi. Na przykład zmienna msg.to_address przechowuje numer telefonu, na który zostanie dostarczona wiadomość (Rysunek 3). Zmienna msg.text przechowuje tekst wiadomości. Zmodyfikuj ją według własnych preferencji i uruchom projekt, aby wysłać wiadomość testową.

Rysunek 3 - Plik SendScheduledSms.rb

Jak wysłać zaplanowanego SMS-a za pomocą Ruby (Samouczek wideo)

W tym filmie pokażemy Ci proces uruchamiania przykładowego projektu. Film rozpocznie się od przygotowanego kodu źródłowego i zakończy się logiem zaplanowanego SMS-a. Film nauczy Cię, jak podać czas wysłania wiadomości i jakie konfiguracje należy wykonać w wierszu poleceń. Ten film trwa tylko 1:30, ale jest bardzo szczegółowy. Dowiesz się wszystkich kluczowych kroków, które należy podjąć, aby zaplanować SMS. W tym filmie używamy bramki SMS Ozeki, więc będziesz pracować z bardzo intuicyjnym interfejsem użytkownika. Nie będziesz miał problemu z wykonaniem kroków.

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

Podsumowanie

Powyższy artykuł pokazał kroki planowania SMS-ów w języku Ruby z pomocą bramki SMS Ozeki. Dzięki temu rozwiązaniu możliwe jest idealne czasowanie dostarczania SMS-ów, co prowadzi do wyższej wydajności i przyjaznego wizerunku dla klienta. Odbiorcy otrzymują wiadomości, gdy nie są zajęci, więc mają czas, aby je przeczytać. Bramka SMS Ozeki to bardzo niezawodne oprogramowanie, które można łatwo zarządzać.

Kontynuuj czytanie na stronie samouczków Ozeki, gdzie znajdziesz więcej informacji na podobne tematy, takie jak odbieranie w Ruby.

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

More information