Sha256: 937982ec5ca7ae4348c747010e141cbbe7e2238e0a7755c2048ad526d73903dc

Contents?: true

Size: 1.29 KB

Versions: 3

Compression:

Stored size: 1.29 KB

Contents

RestCore::Mixi = RestCore::Builder.client(
  :data, :consumer_key, :consumer_secret, :redirect_uri) do
  s = self.class # this is only for ruby 1.8!
  use s::Timeout       , 10

  use s::DefaultSite   , 'http://api.mixi-platform.com/'
  use s::DefaultHeaders, {'Accept' => 'application/json'}

  use s::Oauth2Header  , nil

  use s::CommonLogger  , nil
  use s::Cache         , nil, 600 do
    use s::ErrorHandler  , lambda{ |env| p env }
    use s::ErrorDetectorHttp
    use s::JsonDecode    , true
  end

  use s::Defaults      , :data     => lambda{{}}
end

module RestCore::Mixi::Client
  include RestCore

  def access_token
    data['access_token'] if data.kind_of?(Hash)
  end

  def authorize_url queries={}
    url('https://mixi.jp/connect_authorize.pl',
        {:client_id     => consumer_key,
         :response_type => 'code',
         :scope         => 'r_profile'}.merge(queries))
  end

  def authorize! code, payload={}, opts={}
    pl = {:client_id     => consumer_key   ,
          :client_secret => consumer_secret,
          :redirect_uri  => redirect_uri   ,
          :grant_type    => 'authorization_code',
          :code          => code}.merge(payload)

    self.data = post('https://secure.mixi-platform.com/2/token', pl, {}, opts)
  end
end

RestCore::Mixi.send(:include, RestCore::Mixi::Client)

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
rest-more-0.7.0 lib/rest-core/client/mixi.rb
rest-core-0.4.0 lib/rest-core/client/mixi.rb
rest-core-0.4.0.pre.2 lib/rest-core/client/mixi.rb