Kako poslati SMS iz Rubyja

Najjednostavniji način za slanje SMS-a iz Rubyja je korištenje ugrađenog HTTP/Rest SMS API-ja Ozeki SMS Gatewaya. Kada koristite ovaj API, slat ćete SMS poruke slanjem HTTP Post zahtjeva SMS gatewayu. HTTP Post zahtjev će sadržavati poruku formatiranu u json formatu. SMS gateway će poslati ovaj SMS na telefon primatelja i vratit će HTTP 200 OK odgovor na vaš zahtjev.

kako poslati sms iz rubyja
Slika 1 - Kako poslati SMS iz Rubyja

Ruby kod za slanje SMS-a na mobilni telefon

Ruby SMS primjer koda ispod pokazuje kako možete poslati SMS koristeći http rest SMS API Ozeki SMS Gatewaya koristeći Ruby ozeki_libs_rest gem. Ova knjižnica vam je dostupna besplatno i možete je koristiti i mijenjati u bilo kojem od vaših projekata.

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)
	

Kod 1 - SendSms.rb

Kako koristiti Ruby SMS primjer:

Ovaj Ruby SMS primjer može se koristiti u bilo kojoj Ruby aplikaciji. Da biste ga koristili, morate preuzeti ozeki_libs_rest gem. Nakon što je gem preuzet, trebate dodati referencu na njega u svom Ruby izvornom kodu. To će vam omogućiti korištenje klasa koje pruža ozeki_libs_rest gem. Možete koristiti klasu Message za kreiranje SMS-a. Možete koristiti klasu MessageApi za slanje SMS-a SMS gatewayu. SMS gateway će proslijediti vašu poruku na mobilnu mrežu bilo putem bežične veze ili putem interneta.

Preuzmite SendSms.rb

Izvorni kod objašnjen u ovom članku može se preuzeti, koristiti i mijenjati besplatno.
Preuzmi: SendSms.rb.zip (316B)

Što se nalazi u SendSms.rb.zip datoteci?

U SendSms.rb.zip pronaći ćete datoteku SendSms.rb, koja sadrži primjer koda koji vam pokazuje kako poslati SMS. Ovaj primjer koda je naveden ispod.

Slika 2 - Što se nalazi unutar SendSms.rb.zip

Kako instalirati ozeki_libs_rest gem koristeći Windows shell

gem install ozeki_libs_rest
	

Kod 2 - Naredba za instalaciju ozeki_libs_rest gem-a

Video 1 - Kako instalirati ozeki_libs_rest gem (Video tutorial)

Kako poslati SMS iz Rubyja (Jednostavne smjernice)

Za slanje SMS-a iz Rubyja:

  1. Instalirajte HTTP API korisnika
  2. Omogućite bilježenje komunikacijskih događaja na kartici Napredno
  3. Postavite Visual Studio
  4. Preuzmite zatim raspakirajte SendSms.rb.zip datoteku
  5. Pokrenite Ozeki SMS Gateway aplikaciju
  6. Pokrenite SendSend.rb Ruby kod koristeći naredbeni redak
  7. Provjerite zapisnike da vidite je li SMS poslan

Instalirajte Ozeki SMS Gateway i kreirajte HTTP API korisnika

Da biste mogli slati SMS iz Rubyja, prvo morate instalirati Ozeki SMS Gateway. SMS gateway se može instalirati na istom računalu gdje razvijate svoj Ruby kod u bilo kojem tekstualnom editoru, kao što je Windows notepad. Nakon instalacije, sljedeći korak je povezati Ozeki SMS Gateway s mobilnom mrežom. Možete poslati testni SMS iz Ozeki GUI-ja kako biste potvrdili da vaša mobilna mrežna veza radi. Konačni korak za pripremu vašeg okruženja je kreiranje HTTP SMS API korisničkog računa. Kreirajte korisnika s korisničkim imenom "http_user" i lozinkom "qwe123" kako bi primjer radio bez modifikacija.

Nakon što je okruženje postavljeno, možete pokrenuti svoj Ruby kod.

HTTP API URL za slanje SMS-a iz Rubyja

Za slanje SMS-a iz Rubyja, vaš Ruby će morati poslati HTTP zahtjev SMS gatewayu. API URL je prikazan ispod. Imajte na umu da IP adresa (127.0.0.1) treba biti zamijenjena IP adresom vašeg SMS gatewaya. Ako je Ozeki SMS Gateway instaliran na istom računalu gdje se pokreće Ruby SMS aplikacija, ovo može biti 127.0.0.1. Ako je instaliran na drugom računalu, treba biti IP adresa tog računala.

http://127.0.0.1:9509/api?action=rest
	

HTTP autentifikacija za slanje SMS-a iz Rubyja

Za autentifikaciju Ruby SMS klijenta, morate poslati korisničko ime i lozinku u base64 kodiranom stringu na poslužitelj u HTTP zahtjevu. Korišteni format je: base64(korisničko_ime+":"+lozinka). U Rubyju možete koristiti sljedeći kod za ovo kodiranje:

username_password = username + ':' + password
username_password_encoded = Base64.encode64(username_password)
'Basic ' + username_password_encoded
	

Na primjer, ako kodirate korisničko ime 'http_user' i lozinku 'qwe123', dobit ćete sljedeći base64 kodirani string: aHR0cF91c2VyOnF3ZTEyMw==. Za slanje

HTTP zaglavlje zahtjeva za slanje SMS-a iz Rubyja

Za slanje SMS poruka potrebno je uključiti sljedeće retke kao zaglavlja u HTTP zahtjev. Imajte na umu da uključujemo vrstu sadržaja (content type) i zaglavlje za autorizaciju (Authorization).

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

HTTP zahtjev za slanje SMS-a iz Rubyja

Za slanje SMS-a, vaša Ruby aplikacija će poslati HTTP zahtjev sličan donjem primjeru. Imajte na umu da ovaj zahtjev sadrži dio s HTTP zaglavljem i dio s HTTP tijelom. HTTP tijelo je JSON kodirani niz podataka. Sadrži broj primatelja i tekst poruke.

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":	"Hello world!",
			"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 odgovor primljen u Ruby SMS primjeru

Nakon što SMS pristupnik primi ovaj zahtjev, generirat će HTTP odgovor. HTTP odgovor će sadržavati statusni kod kako bi naznačio je li zahtjev za slanje SMS-a bio uspješan ili ne. Također će vratiti JSON kodiranu strukturu koja vam pruža korisne pojedinosti o slanju poruke.

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": "SUCCESS",
	"response_msg": "Messages queued for delivery.",
	"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": "Hello world!",
	      "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": "Type",
	          "value": "SMS:TEXT"
	        }
	      ],
	      "status": "SUCCESS"
	    }
	  ]
	}
}
	

Povežite svoj SMS pristupnik s mobilnom mrežom i kreirajte HTTP API korisnički račun

Pretpostavljamo da ste već instalirali Ozeki SMS pristupnik, i da ste ga povezali s mobilnom mrežom. Kako biste mogli slati SMS na mobilni telefon iz Rubyja, potrebno je postaviti HTTP API korisnički račun u Ozeki SMS pristupniku.

Video 2 - Kako postaviti HTTP API korisnički račun (Video tutorial)

Kako poslati SMS iz Rubyja koristeći Ruby SMS API (Video tutorial)

Ovaj video vam pokazuje kako preuzeti datoteku SendSms.rb.zip s ove stranice. Ako pogledate video, primijetit ćete da se sadržaj SendSms.rb zip datoteke stavlja na radnu površinu Windowsa. Također ćete vidjeti da pokrećemo naredbeni redak kako bismo poslali SMS.

Ruby SMS primjer: SendSms.rb

Primjer koda u nastavku dio je datoteke SendSms.rb.

Slika 3 - Datoteka SendSms.rb

Kako provjeriti je li SMS prihvaćen od strane HTTP korisnika

Nakon što je SMS poslan, dobro je provjeriti vaš SMS pristupnik kako biste vidjeli što je primio. Dnevnik možete provjeriti otvaranjem detalja HTTP korisnika iz upravljačke konzole Ozeki SMS pristupnika. Sljedeći video vam pokazuje što trebate tražiti.

Video 4 - Kako poslati SMS s Ruby kodom iznad (Video tutorial)

Kako provjeriti je li SMS poslan na mobilnu mrežu

Završni korak u provjeri postupka je pogledati dnevnike veze s mobilnom mrežom. Možda ćete morati uključiti bilježenje (logging) u konfiguraciji veze prije slanja poruke kako biste vidjeli dnevnike. Ako je bilježenje uključeno, vidjet ćete broj telefona i tekst poruke koju ste poslali.

Video 5 - Kako testirati je li zahtjev prihvaćen od strane SMPP klijenta (Video tutorial)

Kako izgleda primanje poruke na Androidu (Video tutorial)

U ovom videu vidjet ćete proces primanja poruke na Androidu, kada je poruka poslana pomoću Ozeki SMS Gatewaya. Video će započeti s uobičajenim glavnim zaslonom Androida i prikazat će obavijest koju dobijete u slučaju dolazne SMS poruke, a zatim otvorenu aplikaciju Poruke s SMS-om 'Hello World'. Video traje samo 18 sekundi, ali prikazuje cijeli proces.

Video 6 - Kako izgleda primanje poruke na Androidu (Video tutorial)

Zaključak

Glavni cilj ovog članka bio je pokazati korake slanja SMS poruka u Rubyju uz pomoć Ozeki SMS Gatewaya. S ovom inovacijom, možete slati poruke svojim klijentima sjedeći za računalom, koristeći samo Ozeki SMS Gateway i Ruby kod. Ovo rješenje sjajan je primjer koliko je lako kontrolirati Ozeki SMS Gateway s Ruby kodovima. Također se mora spomenuti da Ozeki SMS Gateway radi u bilo kojoj zemlji i može slati i primati SMS poruke putem različitih mobilnih veza.

Nastavite čitanje na Ozekijevoj stranici s tutorijalima, gdje možete pronaći više informacija o temama kao što su planiranje SMS poruka u Rubyju.

Jedino što sada preostaje je preuzeti Ozeki SMS Gateway i neka počne rad!

More information