Skip to content

Instantly share code, notes, and snippets.

@ebadullah
Created April 26, 2014 10:05
Show Gist options
  • Save ebadullah/11316311 to your computer and use it in GitHub Desktop.
Save ebadullah/11316311 to your computer and use it in GitHub Desktop.
Revised Version of Smile API Wrapper
class SmileApi
require 'uri'
require 'rubygems'
require 'curb'
def get_session
user_name = "username"
password = "password"
# data = File.read("http://api.smilesn.com/session?username="+user_name+"&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
require 'open-uri'
require 'json'
# Set the request URL
url = "http://api.smilesn.com/session?username="+user_name+"&password="+password
data = open_smile_uri(url)
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 open_smile_uri(url)
curl = Curl::Easy.new(url)
curl.perform
data = ''
data = curl.body_str
#begin
#open(url) do |f|
# puts f.base_uri
# puts f.status
# data = f.read
#end
return data
end
def send_sms(receive_num, sender_num, text_message)
receive_num=URI.escape(receive_num)
sender_num=URI.escape(sender_num)
text_message=URI.escape(text_message)
session_file = File.open("session.txt")
session_id = session_file
if session_id.blank?
session_id = self.get_session
end
url = "http://api.smilesn.com/sendsms?sid="+session_id+"&receivenum="+receive_num+"6&sendernum=8333&textmessage="+text_message
debugger
data = open_smile_uri(url)
#data=File.read("http://api.smilesn.com/sendsms?sid="+session_id+"receivenum="+receive_num+"&sendernum=8333&textmessage="+text_message)
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 = open_smile_uri(url)
#data=File.read("http://api.smilesn.com/sendsms?sid="+session_id+"&receivenum="+receive_num+"&sendernum=8333&textmessage="+text_message)
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