facebook_rails 0.1.2 → 0.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.
- data/app/controllers/facebook_rails_controller.rb +22 -1
- data/app/helpers/facebook_rails_helper.rb +25 -14
- data/lib/facebook_rails/engine.rb +5 -0
- data/lib/facebook_rails/version.rb +1 -1
- data/lib/generators/facebook_rails/facebook_rails_generator.rb +1 -1
- data/lib/generators/facebook_rails/templates/facebook.yml +6 -0
- metadata +8 -8
@@ -9,6 +9,26 @@ module FacebookRailsController
|
|
9
9
|
FACEBOOK['f8app_callback'].to_s + path
|
10
10
|
end
|
11
11
|
|
12
|
+
def microsite_href(path = '/')
|
13
|
+
FACEBOOK['microsite_home'].to_s + path
|
14
|
+
end
|
15
|
+
|
16
|
+
def smart_href(path = '/')
|
17
|
+
if in_facebook_app?
|
18
|
+
direct_href(path)
|
19
|
+
else
|
20
|
+
microsite_href(path)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def in_facebook_app?
|
25
|
+
FACEBOOK['f8app_host'].blank? or request.host == FACEBOOK['f8app_host']
|
26
|
+
end
|
27
|
+
|
28
|
+
def in_microsite?
|
29
|
+
!in_facebook_app?
|
30
|
+
end
|
31
|
+
|
12
32
|
def facebook_api
|
13
33
|
@facebook_api ||= Koala::Facebook::API.new(session[:access_token])
|
14
34
|
end
|
@@ -136,7 +156,8 @@ module FacebookRailsController
|
|
136
156
|
#First check we received the call with a signed_request parameter, as that means a fresh token
|
137
157
|
if params[:signed_request]
|
138
158
|
fb_oauth = Koala::Facebook::OAuth.new
|
139
|
-
f8_params = fb_oauth.parse_signed_request(params.delete(:signed_request))
|
159
|
+
@f8_params = f8_params = fb_oauth.parse_signed_request(params.delete(:signed_request))
|
160
|
+
session[:fan_page_id] = f8_params["page"]["id"] if f8_params["page"]
|
140
161
|
session[:f8_locale] = (f8_params and f8_params["user"]) ? f8_params["user"]["locale"] : nil
|
141
162
|
#puts "request params: #{ f8_params.inspect }"
|
142
163
|
if f8_params["oauth_token"]
|
@@ -3,17 +3,31 @@ module FacebookRailsHelper
|
|
3
3
|
return '<script>' +
|
4
4
|
'if (top == self)' +
|
5
5
|
'{' +
|
6
|
-
"top.location = '#{facebook_href(url_for(
|
6
|
+
"top.location = '#{facebook_href(url_for({ :controller => controller.controller_name, :action => controller.action_name }.merge params.reject{ |k,v| k == 'signed_request' }))}';" +
|
7
7
|
'}' +
|
8
8
|
'</script>'
|
9
9
|
end
|
10
10
|
|
11
|
-
def
|
11
|
+
def reload_back_to_microsite_if_needed_js
|
12
|
+
return '<script>' +
|
13
|
+
'if (top != self)' +
|
14
|
+
'{' +
|
15
|
+
"top.location = '#{microsite_href(url_for({ :controller => controller.controller_name, :action => controller.action_name }.merge params.reject{ |k,v| k == 'signed_request' }))}';" +
|
16
|
+
'}' +
|
17
|
+
'</script>'
|
18
|
+
end
|
19
|
+
|
20
|
+
def facebook_initialization options = {}
|
21
|
+
options[:resize] = :auto unless options.has_key?(:resize)
|
22
|
+
options[:init] ||= {}
|
23
|
+
options[:init][:appId] ||= FACEBOOK['app_id'].to_s
|
24
|
+
options[:init][:status] = true unless options.has_key?(:status)
|
25
|
+
options[:init][:cookie] = true unless options.has_key?(:cookie)
|
12
26
|
begin
|
13
|
-
|
27
|
+
options[:user_f8id] = current_user_f8id
|
14
28
|
rescue Exception => e
|
15
29
|
logger.info "current_user_f8id exception #{ e.to_s }"
|
16
|
-
end
|
30
|
+
end unless options.has_key?(:user_f8id)
|
17
31
|
onload_resize = %{
|
18
32
|
var domLoaded = false;
|
19
33
|
var facebookLoaded = false;
|
@@ -48,11 +62,11 @@ module FacebookRailsHelper
|
|
48
62
|
});
|
49
63
|
}
|
50
64
|
|
51
|
-
login_status = if user_f8id
|
65
|
+
login_status = if options[:user_f8id]
|
52
66
|
%{
|
53
67
|
FB.getLoginStatus(function(response) {
|
54
|
-
if ((response.authResponse && response.authResponse.userID == '#{ user_f8id }') ||
|
55
|
-
(response.session && response.session.uid == '#{ user_f8id }')) {
|
68
|
+
if ((response.authResponse && response.authResponse.userID == '#{ options[:user_f8id] }') ||
|
69
|
+
(response.session && response.session.uid == '#{ options[:user_f8id] }')) {
|
56
70
|
// logged in and connected user - continue
|
57
71
|
$(document).trigger('got_facebook_status');
|
58
72
|
} else {
|
@@ -72,15 +86,12 @@ module FacebookRailsHelper
|
|
72
86
|
%{
|
73
87
|
<div id="fb-root"></div>
|
74
88
|
<script type="text/javascript">
|
75
|
-
#{ onload_resize if resize == :onload }
|
89
|
+
#{ onload_resize if options[:resize] == :onload }
|
76
90
|
window.fbAsyncInit = function() {
|
77
|
-
FB.init({
|
78
|
-
status: true,
|
79
|
-
cookie: true,
|
80
|
-
xfbml: true });
|
91
|
+
FB.init({ #{ options[:init].collect{ |key, value| "#{ key }: #{ value }" }.join(', ') } });
|
81
92
|
$(document).trigger('facebook_init');
|
82
|
-
#{ 'facebookLoaded = true; pageLoad();' if resize == :onload }
|
83
|
-
#{ 'FB.Canvas.setAutoGrow();' if resize == :auto }
|
93
|
+
#{ 'facebookLoaded = true; pageLoad();' if options[:resize] == :onload }
|
94
|
+
#{ 'FB.Canvas.setAutoGrow();' if options[:resize] == :auto }
|
84
95
|
#{ login_status }
|
85
96
|
};
|
86
97
|
|
@@ -59,6 +59,11 @@ module FacebookRails
|
|
59
59
|
|
60
60
|
ActionController::Base.send :helper_method, :facebook_href
|
61
61
|
ActionController::Base.send :helper_method, :direct_href
|
62
|
+
ActionController::Base.send :helper_method, :microsite_href
|
63
|
+
ActionController::Base.send :helper_method, :smart_href
|
64
|
+
ActionController::Base.send :helper_method, :in_facebook_app?
|
65
|
+
ActionController::Base.send :helper_method, :in_microsite?
|
66
|
+
ActionController::Base.send :helper_method, :authenticated_by_facebook?
|
62
67
|
ActionController::Base.send :helper_method, :current_user_f8id
|
63
68
|
ActionController::Base.send :helper_method, :get_facebook_locale
|
64
69
|
end
|
@@ -7,6 +7,8 @@ development:
|
|
7
7
|
#Slijede drap dodaci
|
8
8
|
f8app_home: http://apps.facebook.com/CANVAS_NAME #bez zadnjeg '/'
|
9
9
|
f8app_callback: CALLBACK_URL #bez zadnjeg '/'
|
10
|
+
#f8app_host: HOST_NAME #needed only when microsite exists
|
11
|
+
#microsite_home: http://microsite.com #bez zadnjeg '/'
|
10
12
|
#server_subdir:
|
11
13
|
timeout: 3
|
12
14
|
|
@@ -16,6 +18,8 @@ test:
|
|
16
18
|
#Slijede drap dodaci
|
17
19
|
f8app_home: CANVAS_URL #bez zadnjeg '/'
|
18
20
|
f8app_callback: CALLBACK_URL #bez zadnjeg '/'
|
21
|
+
#f8app_host: HOST_NAME #needed only when microsite exists
|
22
|
+
#microsite_home: http://microsite.com #bez zadnjeg '/'
|
19
23
|
#server_subdir:
|
20
24
|
timeout: 3
|
21
25
|
|
@@ -25,5 +29,7 @@ production:
|
|
25
29
|
#Slijede drap dodaci
|
26
30
|
f8app_home: CANVAS_URL #bez zadnjeg '/'
|
27
31
|
f8app_callback: CALLBACK_URL #bez zadnjeg '/'
|
32
|
+
#f8app_host: HOST_NAME #needed only when microsite exists
|
33
|
+
#microsite_home: http://microsite.com #bez zadnjeg '/'
|
28
34
|
#server_subdir:
|
29
35
|
timeout: 3
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facebook_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-24 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70276425465420 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70276425465420
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: koala
|
27
|
-
requirement: &
|
27
|
+
requirement: &70276425464920 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.4.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70276425464920
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sqlite3
|
38
|
-
requirement: &
|
38
|
+
requirement: &70276425464540 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70276425464540
|
47
47
|
description: Manages collecting of facebook authentication and provides helpers. It
|
48
48
|
uses koala and is built for Rails 3.
|
49
49
|
email:
|