Skip to content

Instantly share code, notes, and snippets.

@metavida
Created September 1, 2010 00:13
Show Gist options
  • Save metavida/560011 to your computer and use it in GitHub Desktop.
Save metavida/560011 to your computer and use it in GitHub Desktop.
How to test OAuth with the Haiku LMS API, using Ruby.
require 'rubygems'
require 'oauth'
require 'xmlsimple'
# Create an OAuth Consumer with the appropriate API key and secret.
@consumer = OAuth::Consumer.new("api_key_EUNzNgVkrpFUFg", "api_secret_KBq6hTvjjvqAWOPz6c4WnQHN6jvkU8", { :site=>"https://my-domain.myhaikuclass.com" })
# Create an OAuth Access Token using your personal key and secret.
@access_token = OAuth::AccessToken.new(@consumer, "token_959b3659b65ddbb6f8552c3401", "secret_40ec1d3617e7f58811c2f1e4416dcf2f7")
# In order to test OAuth authentication on the server, we'll send a GET request.
@response = @access_token.get("/do/services/test/oauth?hello=world")
# Parse the XML response.
@response = XmlSimple.xml_in(@response.body)
if @response['status'] == 'ok'
# If the response from the Haiku LMS API indicates success
# extract the pong and display it.
@pong = @response['pong']
puts @pong.inspect
# [{
# "hello"=>"world"
# }]
else
# If there was an error, display the error message
@error = @response['error'].first
message = "API Error #{ @error['code'] }: #{ @error['description'] }"
message += "\n#{ @error['details'] }" if @error['details']
raise message
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment