Bem Osteobaldo,
tenho um exemplo que fiz mas estou com
alguns problemas de acentuação.
Segue em anexo, um arquivo com a classe
e outro com o exemplo.
Talvez alguém na lista possa nos ajudar a resolver este problema.
/**************************** CLASSE LIBLEMBRETO
****************************/
require 'digest/md5'
require 'net/http'
require 'uri'
require 'rexml/document'
class LibLembreto
@@chave = "COLOCAR AQUI A CHAVE"
@@palavrasecreta = "COLOCAR AQUI A PALAVRA SECRETA"
@@frob = "COLOCAR AQUI O FROB"
@@idcanal = "COLOCAR AQUI O ID DO CANAL"
def initialize
puts "Construtor"
end
def self.erros
@@erros
end
def geraassinatura(url,arrparametros)
begin
urlretorno = url
stringmd5 = ""
arrparametros.sort_by{|parametro| parametro[:chave]}.each do |
parametro|
urlretorno = urlretorno + parametro[:chave] + "=" + URI.escape
(parametro[:valor]) + "&"
stringmd5 = stringmd5 + parametro[:chave] + URI.escape
(parametro[:valor])
end
strtmp = @@palavrasecreta + stringmd5
urlretorno = urlretorno + "api_sig=" + Digest::MD5.hexdigest
(strtmp)
rescue
puts "Error #{$!}"
end
end
def requestget(url)
begin
urlparser = URI.parse(url)
puts url
response = Net::HTTP.get(urlparser)
rescue
puts "Error #{$!}"
end
response
end
def gettoken
begin
arrretorno = Array.new
parametros = Array.new
parametros << {:chave => 'method', :valor =>
'lembreto.gettoken'}
parametros << {:chave => 'frob', :valor => @@frob}
parametros << {:chave => 'api_key', :valor => @@chave}
parametros << {:chave => 'perms', :valor => "d"}
retorno = self.requestget(self.geraassinatura('http://
www.lembreto.com.br/services/rest/?', parametros))
xml = REXML::Document.new(retorno)
tokentmp = ''
usertmp = ''
if (xml.elements['rsp'].attributes["stat"] == 'ok')
xml.elements.each('rsp/auth/token'){ |token| tokentmp =
token.text}
xml.elements.each('rsp/auth/user'){ |user| usertmp =
user.attributes["nsid"]}
arrretorno = {'token'=>tokentmp, 'user_id' => usertmp}
else
puts 'Fail'
end
rescue
puts "Error #{$!}"
end
arrretorno
end
def sendmessage(token,message,user_id)
begin
parametros = Array.new
parametros << {:chave => 'method', :valor =>
'lembreto.publicaragora'}
parametros << {:chave => 'api_key', :valor => @@chave}
parametros << {:chave => 'canal_id', :valor => @@idcanal}
parametros << {:chave => 'user_id', :valor => user_id}
parametros << {:chave => 'auth_token', :valor => token}
parametros << {:chave => 'mensagem', :valor => message}
retorno = self.requestget(self.geraassinatura("http://
www.lembreto.com.br/services/rest/?", parametros))
puts retorno
xml = REXML::Document.new(retorno)
if (xml.elements['rsp'].attributes["stat"] == 'ok')
puts 'Sucesso'
else
puts 'Falha'
end
rescue
ensure
end
end
end
/
*******************************************************************************/
/**************************** UTILIZAÇAO DA CLASSE
****************************/
require "lib_lembreto.rb"
begin
lib = LibLembreto.new
arrdados = lib.gettoken
lib.sendmessage(arrdados['token'],'Enviando mensagens atraves do
Ruby.',arrdados['user_id'])
rescue
puts "Error #{$!}"
end
/
*******************************************************************************/
On 9 dez, 13:58, Osteobaldo da Silva <
osteobaldodasi...@gmail.com>
wrote: