Jak přijímat SMS z Ruby
Nejjednodušší způsob, jak přijímat SMS zprávy z Ruby, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Když použijete toto API, budete odesílat SMS zprávy vytvořením HTTP Post požadavku na SMS bránu. HTTP Post požadavek bude obsahovat zprávu ve formátu json. SMS brána odešle tuto SMS na telefon příjemce a vrátí HTTP 200 OK odpověď na váš požadavek.
Ruby kód pro přijímání SMS zpráv
Ukázka Ruby kódu pro SMS níže ukazuje, jak můžete odeslat naplánovanou SMS pomocí http rest sms api Ozeki SMS Gateway s použitím Ruby gemu ozeki_libs_rest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli vašem projektu.
ReceiveSms.rbrequire '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
Stáhnout ReceiveSms.rb
Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: ReceiveSms.rb.zip (319B)
Co obsahuje soubor ReceiveSms.rb.zip?
Soubor ReceiveSms.rb.zip obsahuje soubor ReceiveSms.rb, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.
Jak odeslat naplánovanou SMS z Ruby (Rychlé kroky)
Pro odeslání naplánované SMS z Ruby:
- Stáhněte soubor ReceiveSms.rb.zip
- Extrahujte .zip soubor ze složky Stažené
- Otevřete soubor ReceiveSms.rb v libovolném textovém editoru, jako je Windows Notepad
- Spusťte Ozeki SMS Gateway
- Vytvořte HTTP API uživatele v Ozeki
- Spusťte Ruby kód ReceiveSms.rb pomocí příkazového řádku
- Zkontrolujte složku Odeslané v Ozeki SMS Gateway
Instalace Ozeki SMS Gateway a vytvoření HTTP API uživatele
Pro odesílání SMS z Ruby je nejprve nutné nainstalovat Ozeki SMS Gateway. SMS bránu lze nainstalovat na stejný počítač, kde vyvíjíte svůj Ruby kód v Visual studiu. Po instalaci je dalším krokem připojení Ozeki SMS Gateway k mobilní síti. Můžete odeslat testovací sms z Ozeki GUI pro ověření, že vaše připojení k mobilní síti funguje. Posledním krokem k přípravě prostředí je vytvoření HTTP sms api uživatele. Vytvořte uživatele s uživatelským jménem "http_user" a heslem "qwe123", aby příklad fungoval bez úprav.
Po nastavení prostředí můžete spustit svůj Ruby kód.
HTTP API url pro odesílání SMS z Ruby
Pro odesílání SMS z Ruby bude vaše Ruby aplikace muset odeslat HTTP požadavek na SMS bránu. API url je uvedena níže. Poznámka: IP adresa (127.0.0.1) by měla být nahrazena IP adresou vaší SMS brány. Pokud je Ozeki SMS Gateway nainstalována na stejném počítači, kde běží Ruby sms aplikace, může to být 127.0.0.1. Pokud je nainstalována na jiném počítači, měla by to být IP adresa tohoto počítače.
http://127.0.0.1:9509/api?action=rest
HTTP autentizace pro odesílání SMS z Ruby
Pro autentizaci Ruby sms klienta je nutné odeslat uživatelské jméno a heslo v base64 kódovaném řetězci na server v HTTP požadavku. Použitý formát je: base64(username+":"+password). V Ruby můžete použít následující kód pro toto kódování:
username_password = username + ':' + password username_password_encoded = Base64.encode64(username_password) 'Basic ' + username_password_encoded
Například, pokud zakódujete uživatelské jméno 'http_user' a heslo 'qwe123', získáte následující base64 kódovaný řetězec: aHR0cF91c2VyOnF3ZTEyMw==. Pro odeslání
HTTP hlavička požadavku pro odesílání SMS z Ruby
Pro odesílání SMS zpráv je nutné do HTTP požadavku zahrnout následující řádky jako hlavičky. Poznámka: zahrnujeme content type a Authorization hlavičku.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
HTTP požadavek pro odesílání SMS z Ruby
Pro vyžádání příchozích SMS zpráv bude vaše Ruby aplikace odesílat HTTP požadavek podobný tomu níže. Poznámka: tento požadavek obsahuje pouze část HTTP hlavičky.
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
HTTP odpověď přijatá Ruby SMS příkladem
Jakmile SMS brána obdrží tento požadavek, vygeneruje HTTP odpověď. HTTP odpověď bude obsahovat stavový kód, který indikuje, zda byl požadavek na odeslání SMS úspěšný nebo ne. Dále vrátí strukturu zakódovanou v JSONu, která poskytuje užitečné detaily o zprávách.
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" } ] } ] } }
Ruby SMS příklad: ReceiveSms.rb
V tomto videu uvidíte proces stažení souboru ReceiveSMS.rb z této stránky s návodem. Začíná otevřenou stránkou a končí otevřeným projektem. Video je dlouhé pouze 30 sekund, ale obsahuje všechny informace, které potřebujete k stažení příkladového projektu. Je snadno srozumitelné a detailní. Nebudete mít problém s jednotlivými kroky.
Příklad kódu
Níže uvedený příklad kódu je součástí souboru ReceiveSms.rb. Pokud jste obeznámeni s programovacím jazykem Ruby, klidně upravte příkladový projekt podle svých představ a odešlete svou první testovací zprávu.
Jak použít příkladový projekt
V následujícím videu uvidíte, jak můžete odeslat zprávu pomocí příkladového projektu. Začíná otevřeným poznámkovým blokem se zdrojovým kódem. Na konci videa uvidíte přijaté zprávy. Video je dlouhé pouze 1 minutu, ale naučíte se všechny kroky, které potřebujete k dokončení procesu. Video je velmi detailní, takže nebudete mít problém s následováním kroků.
Shrnutí
Cílem tohoto průvodce bylo vysvětlit kroky přijímání SMS v Ruby s pomocí Ozeki SMS brány. S několika jednoduchými kroky můžete přeposílat zprávy ze složky doručené pošty do Ruby programu. Toto řešení je důležité, pokud chcete tyto zprávy shromažďovat na odděleném místě. Ozeki SMS brána vám umožňuje spravovat náklady na SMS a sledovat SMS provoz.
Nezapomeňte pokračovat ve čtení na stránce s návody Ozeki, kde najdete více informací o podobných tématech, jako je odesílání více SMS v Ruby.
Jediné, co teď zbývá, je stáhnout Ozeki SMS bránu a začít pracovat!
More information
- Ruby send SMS with the HTTP rest API (code sample)
- Ruby send multiple SMS with the HTTP rest API (code sample)
- Ruby schedule SMS with the HTTP rest API (code sample)
- Ruby receive SMS with the HTTP rest API (code sample)
- Ruby delete SMS with the HTTP rest API (code sample)
- How to download the latest Ruby SMS library from Github
- Ruby send SMS fom Linux