SMS fogadása Ruby Railsben

Az oldalon található útmutató lehetőséget nyújt arra, hogy megtanuljátok, hogyan használhattok Ruby programot az SMS Gateway-ről érkező SMS üzenetek fogadására. Ez HTTP kérések segítségével valósítható meg, amelyek összegyűjtik a fogadott SMS üzeneteket. Az útmutató tartalmaz egy videó bemutatót és egy lépésről lépésre útmutatót, amely segít megtanulni, hogyan fogadhattok SMS üzeneteket Rubyval.

Mi a Ruby SMS API?

A Ruby Rails SMS API lehetővé teszi SMS üzenetek küldését a Ruby Rails programodból. A Ruby SMS API HTTP kéréseket kezdeményez és elküldi azokat az SMS Gateway-nek, amely továbbítja az üzenetet a címzettnek.

Előfeltételek

SMS fogadása Ruby Railsben

  1. Nyissátok meg a Jegyzettömb alkalmazást
  2. Másoljátok be az oldalról a példakódot
  3. Mentsétek a fájlt ReceiveSMS.rb néven
  4. Nyissátok meg az Ozeki SMS Gateway-t és válasszátok ki a HTTP Szerver kapcsolatot
  5. Nyissátok meg a HTTP Szerver kapcsolat HTML űrlapját
  6. Küldjetek néhány teszt üzenetet
  7. Nyissátok meg a Parancssort
  8. Írjátok be a 'ruby ReceiveSMS.rb' parancsot a Parancssorba és nyomjátok meg az Entert
  9. A Ruby Rails fogadja az SMS üzeneteket

1. videó - Hogyan fogadjunk SMS-t Ruby Railsben (Videó bemutató)

Szabadon használhatod a Ruby példa SMS kódot a projekteidben, és módosíthatod is azt. Ha csak futtatni szeretnéd ezt a példakódot, hogy lásd, hogyan működik, csak kövesd az alábbi lépésről lépésre útmutatót vagy nézd meg a videó bemutatót az oldalon, hogy lásd, mit kell tenned a Ruby SMS példakód számítógépen történő futtatásához.

require 'net/http'
require 'rexml/document'
include REXML

def DisplayMessages(response)
	xmldoc = Document.new(response)

	xmldoc.elements.each('response/data/message') do |value|
		begin
			sender = value.elements['originator'].text
			text = value.elements['messagedata'].text
			DisplayMessage(sender,text)
		rescue
			puts("A postaláda üres.")
		end
	end
end

def DisplayMessage(sender, text)
	puts("#{sender}: #{text}")
end

username = "john"
password = "Xc3ffs"
httpUrl = "https://127.0.0.1:9508/"
folder = "inbox";
limit = "3";

sendString = "#{httpUrl}api?action=receivemessage&username="\
			 "#{username}&password="\
			 "#{password}&folder=#{folder}&limit="\
			 "#{limit}&afterdownload=delete"

puts("HTTP kérés küldése #{sendString}")

OpenSSL::SSL.send(:remove_const, :VERIFY_PEER)
OpenSSL::SSL.const_set(:VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE)

url = URI(sendString)
response = Net::HTTP.get(url)
puts("HTTP válasz érkezett:")
DisplayMessages(response)

1. lépés - Jegyzettömb megnyitása

Az első lépésben egy szövegszerkesztő alkalmazást kell megnyitni, amely kezelni tudja a Ruby fájlokat. Erre a célra használhatod az alapértelmezett Jegyzettömb alkalmazást, amely minden Windows operációs rendszert használó számítógépen megtalálható. Ahogy az 1. ábra is mutatja, egyszerűen nyisd meg az asztalról.

jegyzettömb megnyitása
1. ábra - Jegyzettömb szövegszerkesztő megnyitása

2. lépés - A Ruby kód másolása

Ezután másold le a Ruby példakódot erről az oldalról. Ehhez görgess fel a példakód szakaszhoz és jelöld ki a teljes Ruby példakódot. Ezután, ahogy az a 2. ábrán is látható, nyomd meg a Ctrl+C billentyűkombinációt a billentyűzeten, hogy a Ruby kódot a vágólapra másold.

ruby kód másolása
2. ábra - Ruby forráskód másolása a weboldalról

3. lépés - A kód beillesztése a szövegfájlba

Miután másoltad a Ruby forráskódot az oldalról, be kell illesztened egy szövegdokumentumba. Ehhez lépj vissza a korábban megnyitott Jegyzettömb alkalmazáshoz, és ahogy a 3. ábrán is látható, nyomd meg a Ctrl+V billentyűkombinációt a billentyűzeten, hogy a teljes Ruby forráskódot beilleszd a szövegdokumentumba.

kód beillesztése a jegyzettömbbe
3. ábra - Forráskód beillesztése a Jegyzettömbbe

4. lépés - A szöveg mentése Ruby fájlként

Ezen a ponton van egy szövegfájlod, amely tartalmazza a forráskódot, de még nem a megfelelő Ruby fájlformátumban van. A Jegyzettömb bármilyen formátumban képes fájlokat menteni, így ezt a problémát könnyedén megoldhatod. Válaszd ki a 'Mentés másként' lehetőséget a Jegyzettömbben, és mentsd el a fájlt '.rb' kiterjesztéssel. Ez az eljárás a 4. ábrán látható.

ruby fájl mentése
4. ábra - Ruby fájl mentése ReceiveSMS.rb néven

5. lépés - Néhány teszt üzenet küldése

Most már készen áll a példakód futtatására, de először néhány üzenetnek kell lennie a postaládában. Tesztelési célból használhatod a HTTP Szerver kapcsolatot, hogy néhány teszt üzenetet küldj magadnak és teszteld a PHP példakódot. Nyisd meg az SMS Gateway-t és válaszd ki a HTTP Szerver kapcsolatot. Itt nyisd meg a kapcsolat HTML űrlapját, és ahogy az 5. ábrán is látható, küldj néhány üzenetet az 'Ozeki' címzettnek.

Bejövő SMS szimulálása
5. ábra - Néhány bejövő SMS szimulálása

6. lépés - Parancssor megnyitása

Az útmutató fő lépése a Ruby program futtatása. Ehhez meg kell nyitnod a Parancssort a számítógépeden. Először navigálj abba a mappába, ahová mentetted a Ruby fájlt a Fájlkezelő segítségével. Itt, ahogy az a 6. ábrán is látható, írd be a 'cmd' parancsot a Fájlkezelőbe, és ha megnyomod az Entert, a Parancssor megnyílik a számítógépeden.

parancssor megnyitása
6. ábra - Parancssor megnyitása

7. lépés - A Ruby program futtatása

A Parancssorban csak egy parancsot kell kiadnod a Ruby program futtatásához. Írd be a 'ruby *fájlnév*.rb' parancsot a Parancssorba és nyomd meg az Entert. Ezzel a Ruby példa lefut, és láthatod az eredményeket a konzol ablakban (7. ábra). Itt láthatod a HTTP kérést és a rá érkezett választ is, amely tartalmazza az összes fogadott üzenetet.

ruby kód futtatása
7. ábra - Ruby kód futtatása a Parancssorban