Want to work on some interesting problems with a great development team?
We're looking to hire a junior developer and a quantitative engineer.
Send us your resume! Or if you know someone in the Bay Area that you think might be a good fit, please forward the posting to them.
Friday, June 25, 2010
Tuesday, June 8, 2010
Accessing Bizo API using Ruby OAuth
During a recent HackDay, I wrote a search-engine-like frontend to our multi-dimensional business demographic database.
Among other things, the interface provides search term suggestions based on business title classification, using the Classify operation of the Bizo API.
I chose to use Ruby and the lightweight Sinatra web framework for fast prototyping and since the Bizo API uses OAuth for authentication, I reached out for the excellent OAuth gem.
Now, while the documentation is good it took me a little time to grok the OAuth API and figure out how to use it. The Bizo API does not use a RequestToken; instead we use an API key and a shared secret. Since the OAuth gem documentation didn't include any example for this use-case, I figured I'd post my code here as a starting point for other people to reuse.
Without further ado, here's the short code fragment:
Hopefully this is useful to Rubyists out there needing quick OAuth integration using HTTP GET and a query string and don't need to go through the token exchange process.
Among other things, the interface provides search term suggestions based on business title classification, using the Classify operation of the Bizo API.
I chose to use Ruby and the lightweight Sinatra web framework for fast prototyping and since the Bizo API uses OAuth for authentication, I reached out for the excellent OAuth gem.
Now, while the documentation is good it took me a little time to grok the OAuth API and figure out how to use it. The Bizo API does not use a RequestToken; instead we use an API key and a shared secret. Since the OAuth gem documentation didn't include any example for this use-case, I figured I'd post my code here as a starting point for other people to reuse.
Without further ado, here's the short code fragment:
If you're curious, here's the JSON response for the "VP of Market..." title classification,
require 'rubygems'
require 'oauth'
require 'oauth/consumer'
require 'json'
key = 'xxxxxxxx'
secret = 'yyyyyyyy'
consumer = OAuth::Consumer.new(key, secret, {
:site => "http://api.bizographics.com",
:scheme => :query_string,
:http_method => :get
})
title = "VP of Marketing"
path = URI.escape("/v1/classify.json?api_key=#{key}&title=#{title}")
response = consumer.request(:get, path)
# Display response
p JSON.parse(response.body)
{
"usage" => 1,
"bizographics" => {
"group" => { "name" => "High Net Worth", "code" => "high_net_worth" },
"functional_area" => [
{"name" => "Sales", "code" => "sales" },
{"name" => "Marketing", "code" => "marketing" }
],
"seniority" => {"name" => "Executives", "code" => "executive" }
}
}
Hopefully this is useful to Rubyists out there needing quick OAuth integration using HTTP GET and a query string and don't need to go through the token exchange process.
Subscribe to:
Posts (Atom)