facebook_rails 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|