mini_fb 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be505723cf0db6d36400587903da97d34d916c95
4
- data.tar.gz: dc822865779c05341d3316547d57d9fbb0f48370
3
+ metadata.gz: 396b01082b7673dbdbb00ef7846c28c9054d8b54
4
+ data.tar.gz: 1cb737e842fbdf953ca170215150675a6eeba7c6
5
5
  SHA512:
6
- metadata.gz: a0e2e566abcaedf70de9c9b2b0c97c2dbbc6a05894174fc960ecfdd30dc06ab67f814942d107fb16dfff61562eabc7456fe18c4e086ee545efc16dd8c3b32b84
7
- data.tar.gz: b32d26ce35a3ecb08744530a5739d0637ccc7192652c5126471f3367b285144e4cde24d11cd9eb45912052b594807589d738fd7b616090f671065b494c16ab85
6
+ metadata.gz: 0732ea1d42dee9bfa7c32a4e75f2e11f13d9da4cd76148e6e3fb2010d41be0c90184b012d4830a6b158ebf338fb56fa02f6784dd80ebf826d786021f0daebf60
7
+ data.tar.gz: 75a06e1d0bbe858045f747e80ca4f03c9f934b8b6159b17d1f8697e71d5bb9987e2307d3d74b748b6c8ff297382a6b5e6a74269ef345c8cddf5d2bd460ae744c
data/README.markdown CHANGED
@@ -47,14 +47,21 @@ Facebook now uses Oauth 2 for authentication, but don't worry, this part is easy
47
47
  That's it. You now need to hold onto this access_token. We've put it in a cookie for now, but you probably
48
48
  want to store it in your database or something.
49
49
 
50
- Getting Data from Facebook
50
+ General Use
51
51
  --------------------------
52
52
 
53
+ @response_hash = MiniFB.get(@access_token, @id, @options = {})
54
+
55
+
53
56
  It's very simple:
54
57
 
55
58
  @id = {some ID of something in facebook} || "me"
56
- @type = {some facebook type like feed, friends, or photos} # (optional) nil will just return the object data directly
57
- @response_hash = MiniFB.get(@access_token, @id, :type=>@type)
59
+ @options:
60
+ type = {some facebook type like feed, friends, or photos}
61
+ version = {version of the graph api}. Example: "2.5"
62
+ fields = {array of fields to explicit fetch}
63
+ params = {optional params}
64
+
58
65
  # @response_hash is a hash, but also allows object like syntax for instance, the following is true:
59
66
  @response_hash["user"] == @response_hash.user
60
67
 
@@ -112,7 +119,7 @@ eg:
112
119
  :uid => @user_id, :target_id => @target_user_id,
113
120
  :message => "Hello other user!"
114
121
  })
115
-
122
+
116
123
  all responses will be json. In the instance of 'bad json' methods, the response will formatted {'response': '#{bad_response_string}'}
117
124
 
118
125
 
@@ -194,7 +201,7 @@ Define an fb_connect method in your login/sessions controller like so:
194
201
  @fb_info = MiniFB.parse_cookie_information(FB_APP_ID, cookies) # some users may have to use their API rather than the app. ID.
195
202
  puts "uid=#{@fb_info['uid']}"
196
203
  puts "session=#{@fb_info['session_key']}"
197
-
204
+
198
205
  if MiniFB.verify_cookie_signature(FB_APP_ID, FB_SECRET, cookies)
199
206
  # And here you would create the user if it doesn't already exist, then redirect them to wherever you want.
200
207
  else
data/VERSION.yml ADDED
@@ -0,0 +1,5 @@
1
+ ---
2
+ :major: 2
3
+ :minor: 1
4
+ :patch: 2
5
+ :build:
data/lib/mini_fb.rb CHANGED
@@ -573,7 +573,9 @@ module MiniFB
573
573
  # - metadata: to include metadata in response. true/false
574
574
  # - params: Any additional parameters you would like to submit
575
575
  def self.get(access_token, id, options={})
576
- url = "#{graph_base}#{id}"
576
+ url = graph_base
577
+ url << "v#{options[:version]}/" if options[:version]
578
+ url << id
577
579
  url << "/#{options[:type]}" if options[:type]
578
580
  params = options[:params] || {}
579
581
  params["access_token"] = "#{(access_token)}"
@@ -594,7 +596,8 @@ module MiniFB
594
596
  #
595
597
  # Can throw a connection Timeout if there is too many items
596
598
  def self.multiget(access_token, ids, options={})
597
- url = "#{graph_base}"
599
+ url = graph_base
600
+ url << "v#{options[:version]}/" if options[:version]
598
601
  url << "#{options[:type]}" if options[:type]
599
602
  params = options[:params] || {}
600
603
  params["ids"] = ids.join(',')
@@ -611,7 +614,9 @@ module MiniFB
611
614
  # - metadata: to include metadata in response. true/false
612
615
  # - params: Any additional parameters you would like to submit
613
616
  def self.post(access_token, id, options={})
614
- url = "#{graph_base}#{id}"
617
+ url = graph_base
618
+ url << "v#{options[:version]}/" if options[:version]
619
+ url << id
615
620
  url << "/#{options[:type]}" if options[:type]
616
621
  options.delete(:type)
617
622
  params = options[:params] || {}
@@ -636,7 +641,8 @@ module MiniFB
636
641
  # - metadata: to include metadata in response. true/false
637
642
  # - params: Any additional parameters you would like to submit
638
643
  def self.delete(access_token, ids, options={})
639
- url = "#{graph_base}"
644
+ url = graph_base
645
+ url << "v#{options[:version]}/" if options[:version]
640
646
  params = options[:params] || {}
641
647
  if ids.is_a?(Array)
642
648
  params["ids"] = ids.join(',')
@@ -696,67 +702,59 @@ module MiniFB
696
702
  end
697
703
 
698
704
  def self.fetch(url, options={})
699
-
700
- begin
701
- case options[:method]
702
- when :post
703
- @@log.debug 'url_post=' + url if @@logging
704
- response = @@http.post url, options[:params]
705
- when :delete
706
- if options[:params] && options[:params].size > 0
707
- url += '?' + options[:params].map { |k, v| CGI.escape(k.to_s) + '=' + CGI.escape(v.to_s) }.join('&')
708
- end
709
- @@log.debug 'url_delete=' + url if @@logging
710
- response = @@http.delete url
711
- else
712
- if options[:params] && options[:params].size > 0
713
- url += '?' + options[:params].map { |k, v| CGI.escape(k.to_s) + '=' + CGI.escape(v.to_s) }.join('&')
714
- end
715
- @@log.debug 'url_get=' + url if @@logging
716
- response = @@http.get url
705
+ case options[:method]
706
+ when :post
707
+ @@log.debug 'url_post=' + url if @@logging
708
+ response = @@http.post url, options[:params]
709
+ when :delete
710
+ if options[:params] && options[:params].size > 0
711
+ url += '?' + options[:params].map { |k, v| CGI.escape(k.to_s) + '=' + CGI.escape(v.to_s) }.join('&')
717
712
  end
718
-
719
- resp = response.body
720
- @@log.debug 'Response = ' + resp if @@logging
721
- @@log.debug 'API Version =' + resp.headers["Facebook-API-Version"].to_s if @@logging
722
-
723
- if options[:response_type] == :params
724
- # Some methods return a param like string, for example: access_token=11935261234123|rW9JMxbN65v_pFWQl5LmHHABC
725
- params = {}
726
- params_array = resp.split("&")
727
- params_array.each do |p|
728
- ps = p.split("=")
729
- params[ps[0]] = ps[1]
730
- end
731
- return params
732
- else
733
- begin
734
- res_hash = JSON.parse(resp.to_s)
735
- rescue
736
- # quick fix for things like stream.publish that don't return json
737
- res_hash = JSON.parse("{\"response\": #{resp.to_s}}")
738
- end
713
+ @@log.debug 'url_delete=' + url if @@logging
714
+ response = @@http.delete url
715
+ else
716
+ if options[:params] && options[:params].size > 0
717
+ url += '?' + options[:params].map { |k, v| CGI.escape(k.to_s) + '=' + CGI.escape(v.to_s) }.join('&')
739
718
  end
719
+ @@log.debug 'url_get=' + url if @@logging
720
+ response = @@http.get url
721
+ end
740
722
 
741
- if res_hash.is_a? Array # fql return this
742
- res_hash.collect! { |x| x.is_a?(Hash) ? Hashie::Mash.new(x) : x }
743
- else
744
- res_hash = { response: res_hash } unless res_hash.is_a? Hash
745
- res_hash = Hashie::Mash.new(res_hash)
746
- end
723
+ resp = response.body
724
+ @@log.debug "Response = #{resp}. Status = #{response.status}" if @@logging
725
+ @@log.debug 'API Version =' + response.headers["Facebook-API-Version"].to_s if @@logging
747
726
 
748
- if res_hash.include?("error_msg")
749
- raise FaceBookError.new(res_hash["error_code"] || 1, res_hash["error_msg"])
750
- end
727
+ res_hash = JSON.parse(resp.to_s.size > 2 ? resp.to_s : {response: resp.to_s}.to_json)
751
728
 
752
- return res_hash
753
- rescue Exception => ex
754
- puts "ex.http_code=" + response.status if @@logging
755
- puts 'ex.http_body=' + resp if @@logging
756
- res_hash = JSON.parse(resp) # probably should ensure it has a good response
729
+ unless response.ok?
757
730
  raise MiniFB::FaceBookError.new(response.status, "#{res_hash["error"]["type"]}: #{res_hash["error"]["message"]}")
758
731
  end
759
732
 
733
+ if options[:response_type] == :params
734
+ # Some methods return a param like string, for example: access_token=11935261234123|rW9JMxbN65v_pFWQl5LmHHABC
735
+ params = {}
736
+ params_array = resp.split("&")
737
+ params_array.each do |p|
738
+ ps = p.split("=")
739
+ params[ps[0]] = ps[1]
740
+ end
741
+ return params
742
+ else
743
+ res_hash = JSON.parse(resp.to_s.size > 2 ? resp.to_s : {response: resp.to_s}.to_json)
744
+ end
745
+
746
+ if res_hash.is_a? Array # fql return this
747
+ res_hash.collect! { |x| x.is_a?(Hash) ? Hashie::Mash.new(x) : x }
748
+ else
749
+ res_hash = { response: res_hash } unless res_hash.is_a? Hash
750
+ res_hash = Hashie::Mash.new(res_hash)
751
+ end
752
+
753
+ if res_hash.include?("error_msg")
754
+ raise FaceBookError.new(res_hash["error_code"] || 1, res_hash["error_msg"])
755
+ end
756
+
757
+ res_hash
760
758
  end
761
759
 
762
760
  # Returns all available scopes.
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MiniFB
2
- VERSION = "2.2.0"
2
+ VERSION = "2.2.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_fb
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Travis Reeder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-18 00:00:00.000000000 Z
11
+ date: 2016-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -52,6 +52,7 @@ files:
52
52
  - LICENSE.txt
53
53
  - README.markdown
54
54
  - Rakefile
55
+ - VERSION.yml
55
56
  - lib/mini_fb.rb
56
57
  - lib/version.rb
57
58
  - mini_fb.gemspec