Sha256: 4743158b373c660cd51eb419649b0e23f30b11845f0aedbecace82ac9866d384

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

require 'gplus/person'

module Gplus
  class Client
    def initialize(options = {})
      @client_id = options[:client_id]
      @client_secret = options[:client_secret]
      @redirect_uri = options[:redirect_uri]
      @token = options[:token]

      @oauth_client = OAuth2::Client.new(
        @client_id,
        @client_secret,
        :site => 'https://www.googleapis.com/plus/',
        :authorize_url => 'https://accounts.google.com/o/oauth2/auth',
        :token_url => 'https://accounts.google.com/o/oauth2/token'
      )
    end

    def authorize_url(redirect_uri = @redirect_uri)
      @oauth_client.auth_code.authorize_url(:redirect_uri => redirect_uri, :scope => 'https://www.googleapis.com/auth/plus.me')
    end

    def authorize(auth_code, redirect_uri = @redirect_uri)
      @access_token = @oauth_client.auth_code.get_token(auth_code, :redirect_uri => redirect_uri)
    end

  private
    def access_token
      @access_token ||= OAuth2::AccessToken.new(@oauth_client, @token)
    end

    def get(path)
      response = access_token.get("v1/#{path}")
      MultiJson.decode(response.body)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gplus-0.1.0 lib/gplus/client.rb