Jak odbierać SMS-y w Ruby

Najprostszym sposobem na odbieranie wiadomości SMS w Ruby jest użycie wbudowanego interfejsu HTTP/Rest SMS API Ozeki SMS Gateway. Korzystając z tego API, możesz wysyłać wiadomości SMS, wysyłając żądanie 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 odbierać sms w ruby
Rysunek 1 - Jak odbierać SMS-y w Ruby

Kod Ruby do odbierania wiadomości SMS

Poniższy przykładowy kod Ruby do wysyłania SMS-ów pokazuje, jak można wysłać zaplanowaną wiadomość SMS za pomocą interfejsu HTTP REST SMS API Ozeki SMS Gateway, korzystając z gema Ruby ozeki_libs_rest. Ta biblioteka jest dostarczana bezpłatnie i możesz jej używać oraz modyfikować w dowolnym projekcie.

ReceiveSms.rb
require 'ozeki_libs_rest'

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

api = MessageApi.new(configuration)

result = api.download_incoming()

print(result, "\n")
result.messages.each do |message|
    print(message, "\n")
end
	
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. To pozwoli Ci korzystać z klas dostarczonych przez gem ozeki_libs_rest. Możesz użyć klasy Message do tworzenia SMS-ów. Możesz użyć klasy MessageApi, aby wysłać SMS do bramki SMS. Bramka SMS przekaże Twoją wiadomość do sieci komórkowej przez połączenie bezprzewodowe lub przez Internet.

Pobierz ReceiveSms.rb

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

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

Plik ReceiveSms.rb.zip zawiera plik ReceiveSms.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 ReceiveSms.rb.zip

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

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

  1. Pobierz plik ReceiveSms.rb.zip
  2. Wypakuj plik .zip z folderu Pobrane
  3. Otwórz plik ReceiveSms.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 ReceiveSms.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 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, Twoja aplikacja Ruby będzie musiała wysłać żądanie HTTP do bramki SMS. URL API jest pokazany poniżej. Pamiętaj, ż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 do wysyłania SMS-ów, 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 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 wysyłać wiadomości SMS, musisz uwzględnić następujące linie jako nagłówki w żądaniu HTTP. Pamiętaj, że zawieramy nagłówek Content-Type i Authorization.

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

Żądanie HTTP do wysyłania SMS-ów z Ruby

Aby żądać przychodzących wiadomości SMS, Twoja aplikacja Ruby wyśle żądanie HTTP podobne do poniższego. Pamiętaj, że to żądanie zawiera tylko część nagłówka HTTP.

GET /api?action=receivemsg&folder=inbox HTTP/1.1
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
	

Odpowiedź HTTP otrzymana przez przykład Ruby sms

Po otrzymaniu tego żądania, brama SMS wygeneruje odpowiedź HTTP. Odpowiedź HTTP będzie zawierać kod statusu, wskazujący, czy żądanie wysłania SMS zakończyło się sukcesem czy nie. Zwróci również strukturę zakodowaną w formacie JSON, dostarczając przydatnych informacji o wiadomościach.

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:49:32 GMT
Server: 10/10.3.123
Transfer-Encoding: chunked

{
	"http_code": 200,
	"response_code": "SUCCESS",
	"response_msg": "",
	"data": {
	  "folder": "inbox",
	  "limit": "1000",
	  "data": [
	    {
	      "message_id": "4524cd1f-f048-4b78-99ec-37bd906e676d",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36203333333",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 3",
	      "create_date": "2021-07-06 14:47:37",
	      "valid_until": "2021-07-13 14:47:37",
	      "time_to_send": "2021-07-06 14:47:37",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "e3125586-3d66-4f91-ac4e-66747653fe24",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36202222222",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 2",
	      "create_date": "2021-07-06 14:47:37",
	      "valid_until": "2021-07-13 14:47:37",
	      "time_to_send": "2021-07-06 14:47:37",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    },
	    {
	      "message_id": "98895df5-4972-4941-8bf3-5fb0302d1fa8",
	      "from_connection": "http_user@localhost",
	      "from_address": "+36201111111",
	      "from_station": "%",
	      "to_connection": "http_user@localhost",
	      "to_address": "http_user",
	      "to_station": "%",
	      "text": "Hello world 1",
	      "create_date": "2021-07-06 14:47:37",
	      "valid_until": "2021-07-13 14:47:37",
	      "time_to_send": "2021-07-06 14:47:37",
	      "submit_report_requested": true,
	      "delivery_report_requested": false,
	      "view_report_requested": false,
	      "tags": [
	        {
	          "name": "Type",
	          "value": "SMS:TEXT"
	        }
	      ]
	    }
	  ]
	}
}
	

Przykład Ruby sms: ReceiveSms.rb

W tym filmie zobaczysz proces pobierania pliku ReceiveSMS.rb ze strony tego tutorialu. Rozpocznie się od otwartej strony i zakończy otwartym projektem. Film trwa tylko 30 sekund, ale zawiera wszystkie informacje potrzebne do pobrania przykładowego projektu. Jest łatwy do zrozumienia i szczegółowy. Nie będziesz miał problemu z wykonaniem kroków.

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

Przykładowy kod

Poniższy przykładowy kod jest częścią pliku ReceiveSms.rb. Jeśli znasz język programowania Ruby, śmiało możesz zmodyfikować przykładowy projekt według własnych preferencji i wysłać swoją pierwszą testową wiadomość.

Rysunek 3 - Plik ReceiveSms.rb

Jak używać przykładowego projektu

W poniższym filmie zobaczysz, jak możesz wysłać wiadomość za pomocą przykładowego projektu. Rozpocznie się od otwartego notatnika z kodem źródłowym. Na końcu filmu zobaczysz odebrane wiadomości. Film trwa tylko 1 minutę, ale nauczysz się wszystkich kroków potrzebnych do ukończenia procesu. Film jest bardzo szczegółowy, więc nie będziesz miał problemu z wykonaniem kroków.

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

Podsumowanie

Celem tego przewodnika było wyjaśnienie kroków odbierania SMS w Ruby z pomocą Ozeki SMS Gateway. Za pomocą kilku prostych kroków możesz przekierować wiadomości z folderu skrzynki odbiorczej do programu Ruby. To rozwiązanie jest ważne, jeśli chcesz zbierać te wiadomości w oddzielnym miejscu. Ozeki SMS Gateway pozwala zarządzać kosztami SMS i śledzić ruch SMS.

Koniecznie przeczytaj więcej na stronie tutorialu Ozeki, gdzie znajdziesz więcej informacji na podobne tematy, jak wysyłanie wielu SMS w Ruby.

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

More information