Developer Blog

API - Creating a User

in API, Public

Another question that has cropped up a few times is how to create a user and obtain an access token to then act on behalf on that user with. We have made this very simple (we hope) and here is an example:

#! /usr/bin/env ruby

require 'rubygems'
require "oauth"
require 'json'

def symbolize_hash(hash)
  symbolized_hash = {}  
  puts hash.inspect
  
  hash.each do |key, value|
    symbolized_hash[key.to_sym] = value
  end
  return symbolized_hash
end

# Trusted Client
KEY = 'CLIENT_KEY'
SECRET = 'CLIENT_SECRET'
SITE = 'http://your_subdomain.uservoice.com'

consumer = OAuth::Consumer.new(KEY, SECRET)

response = consumer.request(:get, "#{SITE}/api/v1/oauth/request_token.json")
request_token_hash = JSON.parse(response.body)
puts request_token_hash

request_token = OAuth::RequestToken.from_hash(consumer, 
   symbolize_hash(request_token_hash["token"]))

user = {
  "user[display_name]" => 'Scott Test',
  "user[email]" => "scott@test.com",
  "request_token" => request_token.token
}

response = consumer.request(:post, "#{SITE}/api/v1/users.json", nil, {}, user)
user_hash = JSON.parse(response.body)

puts user_hash
access_token = OAuth::AccessToken.from_hash(consumer, symbolize_hash(user_hash["token"]))

puts "Create user: #{user.inspect}"
puts "Obtained accessToken: #{access_token.inspect}"
puts "Key: #{access_token.token}"
puts "Secret: #{access_token.secret}"

~ Scott

Like us on Facebook Join us on Google+
blog comments powered by Disqus
product screenshot

Create a UserVoice account

Discover how easy it can be to provide great customer service

Try it for free