Sha256: 6570ff5131200758559caa8fdca1a87b5200359e164125951e174a4d86ab28a9

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'bundler/setup'
require 'sinatra/base'
require 'omniauth-shapeways'
require 'reshape'

# Get these keys from http://developer.shapeways.com
ENV['CONSUMER_KEY'] = '61b13483fc0caf31f986026ce2add918d3fa9377'
ENV['CONSUMER_SECRET'] = 'd0482b1653e67cfd25057c257eedd48a5cb8b66e'

# To run this example:
# $ bundle install
# $ rackup -p 9293 config.ru &

class App < Sinatra::Base
  get '/' do
    redirect '/auth/shapeways'
  end

  get '/auth/:provider/callback' do
    auth = request.env['omniauth.auth']
    client = Reshape::Client.new({
      consumer_token: ENV['SHAPEWAYS_CONSUMER_TOKEN'], 
      consumer_secret: ENV['SHAPEWAYS_CONSUMER_SECRET'], 
      oauth_token: auth.credentials.token, 
      oauth_secret: auth.credentials.secret
    })
    materials = client.materials
    
    erb "<h1>#{params[:provider]}</h1>
         <pre>#{JSON.pretty_generate(auth)}</pre>
         <pre>#{JSON.pretty_generate(materials)}</pre>"
  end

  get '/auth/failure' do
    MultiJson.encode(request.env)
  end
end

use Rack::Session::Cookie

use OmniAuth::Builder do
  provider :shapeways, ENV['CONSUMER_KEY'], ENV['CONSUMER_SECRET']
end

run App.new

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reshape-0.1 examples/config.ru