Skip to content

Instantly share code, notes, and snippets.

@rummelonp
Created July 15, 2011 09:05
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rummelonp/1084360 to your computer and use it in GitHub Desktop.
Save rummelonp/1084360 to your computer and use it in GitHub Desktop.
TumblrのConsumerKey/Secret入れて認証してAccessToken/Secret出力するだけのSinatraアプリケーション
# -*- coding: utf-8 -*-
##
## requiements
## sinatra, padrino, haml, oauth
## install
## $ gem install sinatra padrino haml oauth
## usage
## $ rackup tumblrauth.rb
##
require 'sinatra/base'
require 'padrino-helpers'
require 'haml'
require 'oauth'
class Tumblrauth < Sinatra::Base
register Padrino::Helpers
set :haml, format: :html5
enable :sessions
enable :inline_templates
def consumer(data)
OAuth::Consumer.new(data[:key], data[:secret], {site: 'http://www.tumblr.com'})
end
get '/' do
haml :index
end
post '/oauth' do
session[:consumer] = {
key: params[:key],
secret: params[:secret]
}
@consumer = consumer session[:consumer]
@request_token = @consumer.get_request_token
session[:request] = {
token: @request_token.token,
secret: @request_token.secret
}
redirect @request_token.authorize_url
end
get '/callback' do
@consumer = consumer(session[:consumer])
@request_token = OAuth::RequestToken.new(@consumer, session[:request][:token], session[:request][:secret])
@access_token = @request_token.get_access_token(oauth_token: params[:oauth_token], oauth_verifier: params[:oauth_verifier])
session.delete :consumer
session.delete :request
haml :callback
end
end
__END__
@@layout
!!!
%head
%body
= yield
@@index
- form_tag :oauth do
%p key
%p= text_field_tag :key
%p secret
%p= text_field_tag :secret
%p= submit_tag
@@callback
%p= "access token: #{@access_token.token}"
%p= "access token secret: #{@access_token.secret}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment