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.
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.rbrequire '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.
Jak wysłać wiele SMS-ów z Ruby (Szybkie kroki)
Aby wysłać wiele SMS-ów z Ruby:
- Pobierz plik SendMultipleSms.rb.zip
- Wypakuj plik .zip z folderu Pobrane
- Otwórz plik SendMultipleSms.rb w dowolnym edytorze tekstu, np. Windows Notepad
- Uruchom Ozeki SMS Gateway
- Utwórz użytkownika HTTP API w Ozeki
- Uruchom kod Ruby SendMultipleSms.rb za pomocą wiersza poleceń
- 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
Poniższy przykładowy kod jest częścią pliku SendMultipleSms.rb.
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
- Wyślij SMS za pomocą interfejsu HTTP REST API (przykład kodu)
- Wyślij wiele SMS za pomocą interfejsu HTTP REST API (przykład kodu)
- Zaplanuj SMS za pomocą interfejsu HTTP REST API (przykład kodu)
- Odbierz SMS za pomocą interfejsu HTTP REST API (przykład kodu)
- Usuń SMS za pomocą interfejsu HTTP REST API (przykład kodu)
- Jak pobrać najnowszą bibliotekę Ruby SMS z Github
- Wyślij SMS w Ruby z Linux