Jak odeslat SMS z Ruby

Nejjednodušší způsob, jak odeslat SMS z Ruby, je použít vestavěné HTTP/Rest SMS API Ozeki SMS Gateway. Při použití tohoto 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.

jak odeslat sms z ruby
Obrázek 1 - Jak odeslat SMS z Ruby

Ruby kód pro odeslání SMS na mobil

Ukázkový kód Ruby pro SMS níže ukazuje, jak můžete odeslat SMS pomocí HTTP REST SMS API Ozeki SMS Gateway s použitím gemu ozeki_libs_rest. Tato knihovna je poskytována zdarma a můžete ji používat a upravovat v jakémkoli svém projektu.

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)
	

Kód 1 - SendSms.rb

Jak použít příklad Ruby SMS:

Tento příklad Ruby SMS lze použít v jakékoli ruby aplikaci. Pro použití je nutné stáhnout gem ozeki_libs_rest. Po stažení gemu je třeba přidat odkaz na něj ve vašem Ruby zdrojovém kódu. To vám umožní používat třídy poskytované gemem ozeki_libs_rest. Třídu Message můžete použít k vytvoření SMS. Třídu MessageApi můžete použít k odeslání SMS na SMS bránu. SMS brána přepošle vaši zprávu do mobilní sítě buď přes bezdrátové připojení nebo přes internet.

Stáhnout SendSms.rb

Zdrojový kód vysvětlený v tomto článku lze stáhnout, použít a upravit zdarma.
Stáhnout: SendSms.rb.zip (316B)

Co je v souboru SendSms.rb.zip?

V SendSms.rb.zip najdete soubor SendSms.rb, který obsahuje ukázkový kód, který vám ukáže, jak odeslat SMS. Tento ukázkový kód je uveden níže.

Obrázek 2 - Co je uvnitř SendSms.rb.zip

Jak nainstalovat gem ozeki_libs_rest pomocí Linux terminálu

gem install ozeki_libs_rest
	

Kód 2 - Příkaz k instalaci gemu ozeki_libs_rest

Video 1 - Jak nainstalovat gem ozeki_libs_rest (Video návod)

Jak odeslat SMS z Ruby (Jednoduchý návod)

Pro odeslání SMS z Ruby:

  1. Nainstalujte HTTP API uživatele
  2. Povolte Logování komunikačních událostí na záložce Pokročilé
  3. Nastavte Visual Studio
  4. Stáhněte a rozbalte soubor SendSms.rb.zip
  5. Spusťte aplikaci Ozeki SMS Gateway
  6. Spusťte Ruby kód SendSend.rb pomocí příkazového řádku
  7. Zkontrolujte logy, zda byla SMS odeslána

Instalace Ozeki SMS Gateway a vytvoření HTTP API uživatele

Pro odeslá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 libovolném textovém editoru, například Windows Notepad. 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 přípravy prostředí je vytvoření HTTP SMS API uživatelského účtu. 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 odeslání SMS z Ruby

Pro odeslání SMS z Ruby musí vaše Ruby aplikace odeslat HTTP požadavek na SMS bránu. API URL je uvedeno 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 odeslá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 odeslání SMS z Ruby

Pro odeslání SMS zpráv je nutné do HTTP požadavku zahrnout následující řádky jako hlavičky. Všimněte si, že zahrnujeme typ obsahu a autorizační hlavičku.

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

HTTP požadavek pro odeslání SMS z Ruby

Pro odeslání SMS bude vaše Ruby aplikace odesílat HTTP požadavek podobný tomuto níže. Všimněte si, že tento požadavek obsahuje část HTTP hlavičky a část HTTP těla. HTTP tělo je řetězec dat zakódovaný v JSON. Obsahuje číslo příjemce a text zprávy.

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":	"Ahoj světe!",
			"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":	[]
		}
	]
}
	

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. Bude také vracet strukturu zakódovanou v JSON, která vám poskytne užitečné detaily o odeslání zprávy.

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": "ÚSPĚCH",
	"response_msg": "Zprávy zařazeny do fronty k odeslání.",
	"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": "Ahoj světe!",
	      "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": "Typ",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "ÚSPĚCH"
	    }
	  ]
	}
}
	

Připojte svou SMS bránu k mobilní síti a vytvořte účet HTTP API uživatele

Předpokládáme, že jste již nainstalovali Ozeki SMS Gateway, a že jste připojili k mobilní síti. Abyste mohli odesílat SMS na mobilní telefon z Ruby, je nutné nastavit účet HTTP API uživatele v Ozeki SMS Gateway.

Video 2 - Jak nastavit účet HTTP API uživatele (Video návod)

Jak odeslat SMS z Ruby pomocí C# SMS API (Video návod)

Toto video vám ukáže, jak stáhnout soubor SendSms.rb.zip z této stránky. Pokud se podíváte na video, všimnete si, že obsah souboru SendSms.rb zip je umístěn na plochu Windows. Uvidíte také, že spouštíme příkazový řádek pro odeslání SMS.

Příklad Ruby SMS: SendSms.rb

Níže uvedený příklad kódu je součástí souboru SendSms.rb.

Obrázek 3 - Soubor SendSms.rb

Jak ověřit, že SMS byla přijata HTTP uživatelem

Po odeslání SMS je dobré zkontrolovat vaši SMS bránu, abyste viděli, co přijala. Protokol můžete zkontrolovat otevřením detailů HTTP uživatele v konzoli pro správu Ozeki SMS Gateway. Následující video vám ukáže, na co se zaměřit.

Video 4 - Jak odeslat SMS pomocí výše uvedeného Ruby kódu (Video návod)

Jak zkontrolovat, zda byla SMS odeslána do mobilní sítě

Posledním krokem při ověřování postupu je prohlédnout si záznamy připojení k mobilní síti. Možná budete muset před odesláním zprávy zapnout protokolování v konfiguraci připojení, abyste viděli záznamy. Pokud je protokolování povoleno, uvidíte telefonní číslo a text odeslané zprávy.

Video 5 - Jak otestovat, zda požadavek přijal SMPP klient (Video návod)

Video 6 - Jak vypadá přijetí SMS zprávy na mobilním telefonu (Video návod)

More information