facebook_digit_auth 0.1.0 → 0.1.1.pre.beta

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1bd37f47354f00cfa045e08a31f202905d09247c
4
- data.tar.gz: 7f095151687ccd018af879d5ca5be7caa394a0b4
3
+ metadata.gz: 602f3e54220a1afdeec789f942353a3c046a7ab1
4
+ data.tar.gz: ff293cc162458d8d06495a346e27efde2560abbd
5
5
  SHA512:
6
- metadata.gz: f099d9229714d647851a5692180f88665bc22f999fba69cb56305918d98a062983815038f8cdd7b7668b2db5beba0a0e856a72f89201bb6b5c29a151c270205c
7
- data.tar.gz: 1ce5ef1ce978ee317a3360c7cdc5988bd78a6691fe73bbc6ab3160777102f75420b62667fff397f2e412ff27201d70cace6d6c7b03774bbd3501e89f21a8c0f4
6
+ metadata.gz: c0f63bb598e1d2627e9b027ec8bfe59657defe74358fedaa983fedc4bf73c8ca073c0530fcdb9100c77106730c5a2d3f01a5bab06ac45b2387af603ecc661898
7
+ data.tar.gz: ac82e11deff984c1393edd995d4143d4a39ba436ea3f8f89e52b86f7093486161ba2497302939002c49163980dbecfc232b783a0da3fe19528e88c901796642a
@@ -0,0 +1,140 @@
1
+ class FacebookClient
2
+ def initialize(token)
3
+ @client = Koala::Facebook::API.new(token)
4
+ end
5
+
6
+ def data
7
+ {
8
+ "id": user_id,
9
+ "birthday": birthday,
10
+ "first_name": first_name,
11
+ "last_name": last_name,
12
+ "email": email,
13
+ "work": work,
14
+ "education": education,
15
+ "gender": gender,
16
+ "age": age,
17
+ "token_for_business": token_for_business,
18
+ "facebook_friend_ids": facebook_friend_ids,
19
+ "profile_picture": profile_picture
20
+
21
+ }
22
+ end
23
+
24
+ def user_id
25
+ basic_information["id"]
26
+ end
27
+
28
+ def birthday
29
+ if basic_information["birthday"].present?
30
+ Date.strptime(basic_information["birthday"], "%m/%d/%Y")
31
+ else
32
+ ""
33
+ end
34
+ end
35
+
36
+ def first_name
37
+ basic_information["first_name"]
38
+ end
39
+
40
+ def last_name
41
+ basic_information["last_name"]
42
+ end
43
+
44
+ def email
45
+ basic_information["email"]
46
+ end
47
+
48
+ def work
49
+ if basic_information["work"].present?
50
+ work = basic_information["work"][0]
51
+ if work["position"]
52
+ "#{work["position"]["name"]} at #{work["employer"]["name"]}"
53
+ else
54
+ "#{work["employer"]["name"]}"
55
+ end
56
+ else
57
+ ""
58
+ end
59
+ end
60
+
61
+ def education
62
+ if basic_information["education"].present?
63
+ education = basic_information["education"]
64
+ if education.length != 0
65
+ education.last['school']['name']
66
+ else
67
+ "Education not mentioned!"
68
+ end
69
+ end
70
+ end
71
+
72
+ def gender
73
+ if basic_information["gender"].present?
74
+ basic_information["gender"]
75
+ else
76
+ "notspecified"
77
+ end
78
+ end
79
+
80
+ def age
81
+ if basic_information["birthday"].present?
82
+ Date.today.year - Date.strptime(basic_information["birthday"], "%m/%d/%Y").year
83
+ else
84
+ 0
85
+ end
86
+ end
87
+
88
+ def token_for_business
89
+ business_token_info["token_for_business"]
90
+ end
91
+
92
+ def facebook_friend_ids
93
+ friends_response.map { |friend| friend["id"] }
94
+ end
95
+
96
+ def mutual_friends(facebook_user_id)
97
+ get_mutual_friends(facebook_user_id)
98
+ end
99
+
100
+ def profile_picture
101
+ photo_url(basic_information["facebook_user_id"])
102
+ end
103
+
104
+ private
105
+
106
+ attr_reader :client
107
+
108
+ def basic_information
109
+ @basic_information ||= client.get_object("me")
110
+ end
111
+
112
+ def user_context(facebook_user_id)
113
+ context = client.get_object("#{facebook_user_id}?fields=context")
114
+ end
115
+
116
+ def get_mutual_friends(facebook_user_id)
117
+ context = user_context(facebook_user_id)
118
+ mutual_friends = client.get_object("#{context["context"]["id"]}?fields=all_mutual_friends.fields(picture.width(100).height(100), name)")
119
+ if mutual_friends["all_mutual_friends"]
120
+ mutual_friends["all_mutual_friends"]["data"].map{|friend| {"name" => friend["name"], "profile_picture_url" => friend["picture"]["data"]["url"]}}
121
+ else
122
+ []
123
+ end
124
+ end
125
+
126
+ def business_token_info
127
+ @business_token_info ||= client.get_object("me?fields=token_for_business")
128
+ end
129
+
130
+ def friends_response
131
+ @friends_response ||= client.get_connections("me", "friends?limit=5000")
132
+ puts @friends_response.inspect
133
+ @friends_response ||= client.get_connections("me", "friends?limit=5000")
134
+ end
135
+
136
+ def photo_url(facebook_user_id)
137
+ "http://graph.facebook.com/v2.3/#{facebook_user_id}/picture" +
138
+ "?height=500&width=500"
139
+ end
140
+ end
@@ -1,3 +1,3 @@
1
1
  module FacebookDigitAuth
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1-beta"
3
3
  end
@@ -1,9 +1,9 @@
1
1
  require "facebook_digit_auth/version"
2
2
 
3
- module FacebookDigitAuth
4
-
5
- def self.test_method
6
- puts "Here is first line for my gem"
3
+ class FacebookDigitAuth
4
+
5
+ def test_method(facebook_user_token)
6
+ FacebookClient.data(facebook_user_token)
7
7
  end
8
8
 
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facebook_digit_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1.pre.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - RaghavSingh
@@ -68,6 +68,7 @@ files:
68
68
  - bin/console
69
69
  - bin/setup
70
70
  - facebook_digit_auth.gemspec
71
+ - lib/facebook_client.rb
71
72
  - lib/facebook_digit_auth.rb
72
73
  - lib/facebook_digit_auth/version.rb
73
74
  homepage: https://github.com/RaghavVishnoi/test_gem.git
@@ -85,9 +86,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
86
  version: '0'
86
87
  required_rubygems_version: !ruby/object:Gem::Requirement
87
88
  requirements:
88
- - - ">="
89
+ - - ">"
89
90
  - !ruby/object:Gem::Version
90
- version: '0'
91
+ version: 1.3.1
91
92
  requirements: []
92
93
  rubyforge_project:
93
94
  rubygems_version: 2.5.1