fbk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +34 -0
  3. data/lib/fbk.rb +35 -0
  4. metadata +75 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ba8be13d4f86aa5b5ab9be02af0bc32174272352
4
+ data.tar.gz: 99f4aec85639c0ad08389054f271474ff200eda1
5
+ SHA512:
6
+ metadata.gz: b98818dd423486383145be375647171d8dee114df185b88925044a4d5fe83b71f15aca2da1a189b0ad7a720fee1aad7b3873063e2170014cdfa64998de8190ea
7
+ data.tar.gz: 331b149bf07373ae9bae89e2b44594071fc4922a352e740da7cdd1c1fdb779d20934c2a254776ecb467fc1709bb8395bedf5c3670fb73393bc20df09a3347b84
@@ -0,0 +1,34 @@
1
+ # FBK
2
+
3
+ This probably isn't what you're looking for.
4
+
5
+ We use this at [Chicisimo](https://github.com/chicisimo).
6
+
7
+ ## Usage
8
+
9
+ ```ruby
10
+ require "sinatra"
11
+ require "fbk"
12
+
13
+ get "/login/fb" do
14
+ client_id = "xxxx"
15
+ redirect_uri = "https://something.com/login/fb/token"
16
+
17
+ redirect to("https://www.facebook.com/v2.0/dialog/oauth?client_id=#{client_id}&redirect_uri=#{redirect_uri}")
18
+ end
19
+
20
+ get "/login/fb/token" do
21
+ client_id = "xxxx"
22
+ client_secret = "xxxx"
23
+ redirect_uri = "https://something.com/login/fb/token"
24
+ code = params[:code]
25
+
26
+ token = FBK.get_access_token(
27
+ client_id: client_id,
28
+ client_secret: client_secret,
29
+ redirect_uri: redirect_uri,
30
+ code: code) # => "H3UUnvsoymXtinqyofZtHqpqmTNkbJ7x5bpQFeFDGcmAy2THf9pfug2Eyx2ZSTnrqfMcDrUguzaytn4OZHCOyC6RsjEEM2MwHGWGVMwpzuSjWcjE1aS0dVPCTRrNm4bf6YmgVDS7JuUDb3Lxt0AoI0ucTmPdvnbrnkmunszoa0Y9KMJXyh2Nkf4PFgOo2bmjo6rVKzTY"
31
+
32
+ user = FBK.get_user_info(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}
33
+ end
34
+ ```
@@ -0,0 +1,35 @@
1
+ require "json"
2
+ require "nestful"
3
+
4
+ class FBK
5
+ FACEBOOK_URL = "https://graph.facebook.com"
6
+
7
+ def self.get_access_token(params)
8
+ query = parse_params(params)
9
+
10
+ response = Nestful.get("#{FACEBOOK_URL}/oauth/access_token?#{query}").body
11
+ response = parse_response(response)
12
+
13
+ response[:access_token]
14
+ end
15
+
16
+ def self.get_user_info(token)
17
+ response = Nestful.get("#{FACEBOOK_URL}/me?access_token=#{token}")
18
+ JSON.parse(response.body, symbolize_names: true)
19
+ end
20
+
21
+ private
22
+
23
+ def self.parse_params(params)
24
+ params.each_with_object([]) { |(k,v), query| query << "#{k}=#{v}" }.join("&")
25
+ end
26
+
27
+ def self.parse_response(response)
28
+ response.split("&").each_with_object({}) do |parameter, hash|
29
+ key, value = parameter.split("=")
30
+ hash[key.to_sym] = value
31
+ end
32
+ end
33
+
34
+ private_class_method :parse_params, :parse_response
35
+ end
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fbk
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Pedro Gimenez
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nestful
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
41
+ description: Interacts with some parts of the FB Graph API.
42
+ email:
43
+ - pedro@chicisimo.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files:
47
+ - README.md
48
+ files:
49
+ - README.md
50
+ - lib/fbk.rb
51
+ homepage: http://github.com/pedrogimenez/fbk
52
+ licenses:
53
+ - MIT
54
+ metadata: {}
55
+ post_install_message:
56
+ rdoc_options: []
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 2.1.0
64
+ required_rubygems_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ requirements: []
70
+ rubyforge_project:
71
+ rubygems_version: 2.2.0
72
+ signing_key:
73
+ specification_version: 4
74
+ summary: Interacts with some parts of the FB Graph API.
75
+ test_files: []