Skip to content

Instantly share code, notes, and snippets.

@metavida
Created April 18, 2011 19:23
Show Gist options
  • Save metavida/925985 to your computer and use it in GitHub Desktop.
Save metavida/925985 to your computer and use it in GitHub Desktop.
How to list a User's Roster records via 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.haikulearning.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 retrieve a list of all Roster resources for the User with an ID of 1
# we need to send a GET request.
@response = @access_token.get("/do/services/user/1/roster")
# 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 first user record (many will be returned in this case)
# and display it.
@roster = @response['rosters'].first['roster']
puts @roster.inspect
# [{
# "user_id"=>"1",
# "class_id"=>"2",
# "role"=>"S"
# }]
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