Skip to content

Instantly share code, notes, and snippets.

@ebadullah
Created April 17, 2014 09:53
Show Gist options
  • Save ebadullah/10969898 to your computer and use it in GitHub Desktop.
Save ebadullah/10969898 to your computer and use it in GitHub Desktop.
Wrapper for Smile Sms Api
class SmileApi < ActiveRecord::Base
require 'uri'
def get_session
user_name = "username here"
password = "password here"
data = File.read("http://api.smilesn.com/session?username="+username+"&password="+password)
data=JSON.parse(data)
sessionid=data.sessionid
file2 = File.open('session.txt', 'w')
file1 = File.open('session.txt', 'a')
file1.write(sessionid)
file1.close
return sessionid
end
def send_sms(receivenum, sendernum, textmessage)
receivenum=URI.escape(receivenum)
sendernum=URI.escape(sendernum)
textmessage=URI.escape(textmessage)
session_file = File.open("session.txt")
session_id = session_file.trim(session_file[0])
if session_id.blank?
session_id = self.get_session
end
data=File.read("http://api.smilesn.com/sendsms?sid="+session_id+"receivenum="+receivenum."&sendernum=8333&textmessage="+textmessage)
data2=JSON.parse(data)
response_status=data2.status
#=====* START - IF SESSION EXPIRED IS RETURN, GENERATE ANOTHER SESSION & RETRY
if(response_status=="SESSION_EXPIRED")
session_id = self.get_session
data=File.read("http://api.smilesn.com/sendsms?sid="+session_id+"&receivenum="+receivenum+"&sendernum=8333&textmessage="+textmessage)
end
#=====* END - IF SESSION EXPIRED IS RETURN, GENERATE ANOTHER SESSION & RETRY
return data
end
def receive_sms
session_file = File.open("session.txt")
session_id = session_file.trim(session_file[0])
if session_id.blank?
session_id = self.get_session
end
data=File.read("http://api.smilesn.com/receivesms?sid="+session_id)
data2=JSON.parse(data)
response_status=data2.status
#=====* START - IF SESSION EXPIRED IS RETURN, GENERATE ANOTHER SESSION & RETRY
if(response_status=="SESSION_EXPIRED")
session_id = self.get_session
data=File.read("http://api.smilesn.com/receivesms?sid="+session_id)
end
#=====* END - IF SESSION EXPIRED IS RETURN, GENERATE ANOTHER SESSION & RETRY
return data
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment