facebooker2 0.0.8 → 0.0.9
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.
@@ -156,10 +156,22 @@ module Facebooker2
|
|
156
156
|
#default values for the cookie
|
157
157
|
value = 'deleted'
|
158
158
|
expires = Time.now.utc - 3600 unless expires != nil
|
159
|
+
|
160
|
+
# If the expires value is set to some large value in the future, then the 'offline access' permission has been
|
161
|
+
# granted. In the Facebook JS SDK, this causes a value of 0 to be set for the expires parameter. This value
|
162
|
+
# needs to be correct otherwise the request signing fails, so if the expires parameter retrieved from the graph
|
163
|
+
# api is more than a year in the future, then we set expires to 0 to match the JS SDK.
|
164
|
+
expires = 0 if expires > Time.now + 1.year
|
159
165
|
|
160
166
|
if access_token
|
167
|
+
# Retrieve the existing cookie data
|
161
168
|
data = fb_cookie_hash || {}
|
162
|
-
|
169
|
+
# Remove the deleted value if this has previously been set, as we don't want to include it as part of the
|
170
|
+
# request signing parameters
|
171
|
+
data.delete('deleted') if data.key?('deleted')
|
172
|
+
# Keep existing cookie data that could have been set by FB JS SDK
|
173
|
+
data.merge!('access_token' => access_token, 'uid' => uid, 'sig' => sig, 'expires' => expires.to_i.to_s)
|
174
|
+
# Create string to store in cookie
|
163
175
|
value = '"'
|
164
176
|
data.each do |k,v|
|
165
177
|
value += "#{k.to_s}=#{v.to_s}&"
|
@@ -169,7 +181,7 @@ module Facebooker2
|
|
169
181
|
end
|
170
182
|
|
171
183
|
# if an existing cookie is not set, we dont need to delete it
|
172
|
-
if (value == 'deleted' &&
|
184
|
+
if (value == 'deleted' && (!fb_cookie? || fb_cookie == "" ))
|
173
185
|
return;
|
174
186
|
end
|
175
187
|
|
@@ -16,6 +16,7 @@ module Facebooker2
|
|
16
16
|
cookie = opts[:cookie]
|
17
17
|
status = opts[:status]
|
18
18
|
xfbml = opts[:xfbml]
|
19
|
+
channel_url = opts[:channel_url]
|
19
20
|
extra_js = capture(&proc) if block_given?
|
20
21
|
js = <<-JAVASCRIPT
|
21
22
|
<script>
|
@@ -24,6 +25,7 @@ module Facebooker2
|
|
24
25
|
appId : '#{app_id}',
|
25
26
|
status : #{status}, // check login status
|
26
27
|
cookie : #{cookie}, // enable cookies to allow the server to access the session
|
28
|
+
#{"channelUrl : '#{channel_url}', // add channelURL to avoid IE redirect problems" unless channel_url.blank?}
|
27
29
|
xfbml : #{xfbml} // parse XFBML
|
28
30
|
});
|
29
31
|
#{extra_js}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facebooker2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 9
|
10
|
+
version: 0.0.9
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Mike Mangino
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-03-10 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|