fbk 1.1.0 → 1.2.0
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 +4 -4
- data/README.md +7 -3
- data/lib/fbk.rb +39 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddfed1d9c297d6d674cb7214aafdefe1a6c9f729
|
4
|
+
data.tar.gz: 66e790af2c44bab2183547b745206aaf1216bbbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9728f2b374e5df72d00b23e7c7e948e16c692dbd29bfb67ff2e9e4b20964d030575357c03739d5ff573cbe5da9e72c3c4c8650ab24005d2b2943850ff7644b2
|
7
|
+
data.tar.gz: 9ceb5b78734db0e9d3c8b7ab47c195281d2a42ddb790823b3ff6a58773a413dd62b27eb030a169438811b95a9e65f5fe98e25d588972f63d2dc7f06606c29713
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# FBK
|
2
2
|
|
3
|
-
|
3
|
+
Just a bunch of methods that may come in handy when interacting with the Facebook Graph API.
|
4
4
|
|
5
|
-
We use this at [Chicisimo](https://github.com/chicisimo).
|
5
|
+
We use this gem at [Chicisimo](https://github.com/chicisimo).
|
6
6
|
|
7
7
|
## Usage
|
8
8
|
|
@@ -24,8 +24,12 @@ end
|
|
24
24
|
get "/login/fb/token" do
|
25
25
|
code = params[:code]
|
26
26
|
|
27
|
-
access_token = FBK.get_access_token(redirect_uri: REDIRECT_URI, code: code) # => "
|
27
|
+
access_token = FBK.get_access_token(redirect_uri: REDIRECT_URI, code: code) # => "xxxx"
|
28
28
|
|
29
29
|
user = FBK.get_user_info(access_token) # => {:id=>"xxxx", :first_name=>"Pedro", :gender=>"male", :last_name=>"Giménez", :link=>"https://www.facebook.com/pedrotgimenez", :locale=>"en_US", :name=>"Pedro Giménez", :timezone=>1, :updated_time=>"1955-02-24T00:00:00+0000", :username=>"pedrotgimenez", :verified=>true}
|
30
|
+
|
31
|
+
friends = FBK.get_user_friends(access_token) # => => ["xxxx", "xxxx"]
|
32
|
+
|
33
|
+
picture = FBK.get_user_picture(access_token, type: "square", height: 256) # => {:height=>320, :is_silhouette=>false, :url=>"https://scontent.xx.fbcdn.net/hprofile-xft1/v/t1.0-1/p320x320/xxxx.jpg", :width=>320}
|
30
34
|
end
|
31
35
|
```
|
data/lib/fbk.rb
CHANGED
@@ -35,12 +35,49 @@ module FBK
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def get_user_info(token)
|
38
|
-
|
39
|
-
|
38
|
+
get("#{FACEBOOK_GRAPH_URL}/me?access_token=#{token}")
|
39
|
+
end
|
40
|
+
|
41
|
+
def get_user_friends(token)
|
42
|
+
json = get("#{FACEBOOK_GRAPH_URL}/me/friends?access_token=#{token}")
|
43
|
+
|
44
|
+
friends = get_friends_ids(json)
|
45
|
+
|
46
|
+
return friends if only_one_page?(friends, json)
|
47
|
+
|
48
|
+
while (json = get(json[:paging][:next])) && !json[:data].empty? do
|
49
|
+
friends += get_friends_ids(json)
|
50
|
+
end
|
51
|
+
|
52
|
+
friends
|
53
|
+
end
|
54
|
+
|
55
|
+
def get_user_picture(token, params = {})
|
56
|
+
params[:access_token] = token
|
57
|
+
params[:client_id] = @client_id
|
58
|
+
params[:client_secret] = @client_secret
|
59
|
+
params[:redirect] = false
|
60
|
+
|
61
|
+
query_string = params_to_query_string(params)
|
62
|
+
|
63
|
+
get("#{FACEBOOK_GRAPH_URL}/me/picture?#{query_string}")[:data]
|
40
64
|
end
|
41
65
|
|
42
66
|
private
|
43
67
|
|
68
|
+
def get_friends_ids(json)
|
69
|
+
json[:data].map { |friend| friend[:id] }
|
70
|
+
end
|
71
|
+
|
72
|
+
def only_one_page?(friends, json)
|
73
|
+
friends.count == json[:summary][:total_count]
|
74
|
+
end
|
75
|
+
|
76
|
+
def get(endpoint)
|
77
|
+
response = Nestful.get(endpoint).body
|
78
|
+
JSON.parse(response, symbolize_names: true)
|
79
|
+
end
|
80
|
+
|
44
81
|
def params_to_query_string(params)
|
45
82
|
params.map { |k,v| "#{k}=#{v}" }.join("&")
|
46
83
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fbk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pedro Gimenez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nestful
|