Skip to content

Instantly share code, notes, and snippets.

@dongyuwei
Created August 27, 2011 13:20
Show Gist options
  • Save dongyuwei/1175387 to your computer and use it in GitHub Desktop.
Save dongyuwei/1175387 to your computer and use it in GitHub Desktop.
使用微博api查询站点经纬度等信息
%w(rubygems sinatra oauth weibo).each { |lib| require lib }
enable :sessions
Weibo::Config.api_key = "3926176445"
Weibo::Config.api_secret = "651156f9b786fdc0781376f3b121f359"
get '/' do
"<a href='/connect'>授权,搜索公交站点信息</a>"
end
get '/connect' do
oauth = Weibo::OAuth.new(Weibo::Config.api_key, Weibo::Config.api_secret)
request_token = oauth.consumer.get_request_token
session[:rtoken], session[:rsecret] = request_token.token, request_token.secret
redirect "#{request_token.authorize_url}&oauth_callback=http://127.0.0.1:4567/station"
end
get '/station' do
oauth = Weibo::OAuth.new(Weibo::Config.api_key, Weibo::Config.api_secret)
oauth.authorize_from_request(session[:rtoken], session[:rsecret], params[:oauth_verifier])
session[:rtoken], session[:rsecret] = nil, nil
session[:atoken], session[:asecret] = oauth.access_token.token, oauth.access_token.secret
stations = Weibo::Base.new(oauth).station('中关村西')['stations']
list = ['<ul>']
stations.each do |station|
list.push(['<li>',station.name,station.station_info,station.longitude,station.latitude,station.district,'</li>'].join(" "))
end
list.push('</ul>')
list.join(" ")
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment