challah-facebook 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,14 +12,6 @@ module Challah
12
12
  client.access_token!(:client_auth_body).to_s
13
13
  end
14
14
 
15
- def self.get_access_token_from_cookies(cookies_hash)
16
- fb_auth = new(Facebook.options).auth
17
- fb_auth.from_cookie(cookies_hash)
18
- fb_auth.access_token.to_s
19
- rescue
20
- nil
21
- end
22
-
23
15
  def self.get_extended_token(access_token)
24
16
  fb_auth = new(Facebook.options).auth
25
17
  fb_auth.exchange_token!(access_token)
@@ -5,6 +5,60 @@ module Challah
5
5
  def self.mode
6
6
  "koala"
7
7
  end
8
+
9
+ def self.get_access_token_for_oauth_code(code, callback_uri)
10
+ auth = new(Facebook.options).auth(callback_uri)
11
+ auth.get_access_token(code)
12
+ end
13
+
14
+ def self.get_extended_token(access_token)
15
+ auth = new(Facebook.options).auth
16
+ token_hash = auth.exchange_access_token_info(access_token)
17
+ token_hash.fetch('access_token')
18
+ end
19
+
20
+ def self.get_facebook_uid_from_access_token(access_token)
21
+ fb_user = get_user_object_from_access_token(access_token)
22
+
23
+ if fb_user
24
+ return fb_user.fetch('id').to_s
25
+ end
26
+
27
+ nil
28
+ rescue
29
+ nil
30
+ end
31
+
32
+ def self.get_user_info_from_access_token(access_token)
33
+ result = {}
34
+
35
+ fb_user = get_user_object_from_access_token(access_token)
36
+
37
+ Facebook.user_fields.each do |field|
38
+ if fb_user.has_key?(field)
39
+ result[field] = fb_user[field]
40
+ else
41
+ result[field] = nil
42
+ end
43
+ end
44
+
45
+ result
46
+ end
47
+
48
+ def self.get_user_object_from_access_token(access_token)
49
+ graph = ::Koala::Facebook::API.new(access_token)
50
+ graph.get_object('me')
51
+ end
52
+
53
+ def self.get_authorization_url(callback_uri, permissions = nil)
54
+ scope = Facebook.permissions if permissions.nil?
55
+ auth = new(Facebook.options).auth(callback_uri)
56
+ auth.url_for_oauth_code(permissions: scope)
57
+ end
58
+
59
+ def auth(callback_url = nil)
60
+ @auth ||= ::Koala::Facebook::OAuth.new(app_id, app_secret, callback_url)
61
+ end
8
62
  end
9
63
  end
10
64
  end
@@ -45,7 +45,8 @@ module Challah
45
45
 
46
46
  # If the uid's match up, this is a valid token
47
47
  return test_uid == uid
48
- rescue
48
+ rescue Exception => e
49
+ Rails.logger.warn "Facebook Authentication Error: #{e.message}"
49
50
  return false
50
51
  end
51
52
 
@@ -1,5 +1,5 @@
1
1
  module Challah
2
2
  module Facebook
3
- VERSION = "0.1.2" unless defined?(::Challah::Facebook::VERSION)
3
+ VERSION = "0.1.3" unless defined?(::Challah::Facebook::VERSION)
4
4
  end
5
5
  end
@@ -10,7 +10,7 @@ module Challah
10
10
  @options ||= {
11
11
  app_id: ENV['FACEBOOK_APP_ID'],
12
12
  app_secret: ENV['FACEBOOK_SECRET'],
13
- permissions: ENV['FACEBOOK_PERMISSIONS'].to_s.split(','),
13
+ permissions: (ENV['FACEBOOK_PERMISSIONS'] || 'email').to_s.split(','),
14
14
  user_fields: %w( first_name last_name email )
15
15
  }
16
16
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: challah-facebook
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: