Skip to content

Instantly share code, notes, and snippets.

@benbonnet
Created May 28, 2009 13:58
Show Gist options
  • Save benbonnet/119311 to your computer and use it in GitHub Desktop.
Save benbonnet/119311 to your computer and use it in GitHub Desktop.
if params[:frob]
endpoint = ""
frob = params[:frob].to_s
api = "xxxxx"
secret = "xxxxx"
method = "vimeo.auth.getToken"
sign = Digest::MD5.hexdigest(secret + 'api_key' + api + 'frob' + frob + 'method' + method)
endpoint += "?method=#{method}&api_key=#{api}&frob=#{frob}&api_sig=#{sign}"
@http = Net::HTTP.new('vimeo.com')
@http.start() do |http|
req = Net::HTTP::Get.new("/api/rest/#{endpoint}")
response = http.request(req)
puts
puts frob
puts req.to_s
puts response.body
puts
@doc = Hpricot.parse(response.body)
if @doc.search("rsp").attr("stat").to_s == "ok"
token = @doc.search("token").inner_html
perms = @doc.search("perms").inner_html
nsid = @doc.search("user").attr("nsid")
username = @doc.search("user").attr("username")
fullname = @doc.search("user").attr("fullname")
puts "token => #{token} // perms => #{perms} // nsid => #{nsid} // username => #{username} // fullname => #{fullname}"
user = User.find session[:user]
api = Api.create( :api_type_id => 4,
:user_id => user.id,
:token => token,
:username => username,
:fullname => fullname,
:perms => perms,
:remote_id => nsid)
end
end
redirect_to :controller => "veeo", :action => "update_used_apis"
else
endpoint = "http://vimeo.com/services/auth/"
api = "xxxxx"
secret = "xxxxx"
perms = "write"
sign = Digest::MD5.hexdigest(secret + 'api_key' + api + 'perms' + perms)
endpoint += "?api_key=#{api}&perms=write&api_sig=#{sign}"
redirect_to endpoint
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment