Sha256: b3743298a3e088c6e326ab648d8dc2651a13741935948abf42be9b9b3867b96b
Contents?: true
Size: 1.86 KB
Versions: 1
Compression:
Stored size: 1.86 KB
Contents
require 'omniauth/strategies/oauth2' module OmniAuth module Strategies class Facebook < OmniAuth::Strategies::OAuth2 option :client_options, { :site => 'https://graph.facebook.com', :token_url => '/oauth/access_token' } option :token_params, { :parse => :query } option :access_token_options, { :header_format => 'OAuth %s', :param_name => 'access_token' } uid { raw_info['id'] } info do prune!({ 'nickname' => raw_info['username'], 'email' => raw_info['email'], 'name' => raw_info['name'], 'first_name' => raw_info['first_name'], 'last_name' => raw_info['last_name'], 'image' => "http://graph.facebook.com/#{uid}/picture?type=square", 'description' => raw_info['bio'], 'urls' => { 'Facebook' => raw_info['link'], 'Website' => raw_info['website'] }, 'location' => (raw_info['location'] || {})['name'] }) end credentials do prune!({ 'expires' => access_token.expires?, 'expires_at' => access_token.expires_at }) end extra do prune!({ 'raw_info' => raw_info }) end def raw_info @raw_info ||= access_token.get('/me').parsed end def build_access_token super.tap do |token| token.options.merge!(access_token_options) end end def access_token_options options.access_token_options.inject({}) { |h,(k,v)| h[k.to_sym] = v; h } end private def prune!(hash) hash.delete_if do |_, value| prune!(value) if value.is_a?(Hash) value.nil? || (value.respond_to?(:empty?) && value.empty?) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
omniauth-facebook-1.0.0.rc1 | lib/omniauth/strategies/facebook.rb |