rails and facebook connect
2010-03-05 10:14:25 +0800
最近项目需要做一些facebook应用,比如要允许用户登录facebook,要获取用户facebook的好友信息等等。登录facebook自然选用时下流行的facebook connect。代码写起来非常简单,用户的体验也非常好。
首先,进入facebook的开发者页面http://developers.facebook.com/,点击“Start building for your site”,开始创建你的facebook应用,按照提示一步一步继续。需要注意的是,你可能需要创建两个应用,一个针对本地development环境,一个针对production环境。
接着,安装facebooker的gem,并且加入到rails gem依赖。在config目录下创建facebooker.yml文件,内容为
development: api_key:secret_key: canvas_page_name: localhost callback_url: http://localhost:3000 pretty_errors: true set_asset_host_to_callback_url: true tunnel: public_host_username: public_host: public_port: 4007 local_port: 3000 server_alive_interval: 0 production: api_key: secret_key: canvas_page_name: callback_url: set_asset_host_to_callback_url: true tunnel: public_host_username: public_host: public_port: 4007 local_port: 3000 server_alive_interval: 0
在application_controller文件中增加如下代码
before_filter :set_facebook_session helper_method :facebook_session
facebook_session即为用户登录facebook之后所获取的session,通过它可以获取facebook用户相关的所有信息。
然后就是在html header中引入facebook所需的javascript
<%= fb_connect_javascript_tag %> <%= init_fb_connect "XFBML", :js => :jquery %>
最后就是在页面上显示facebook登录的图片和文字
<%= fb_login_button %>
你也可以只显示facebook的icon,并且在用户登录之后刷新页面
<%= fb_login_button("window.location.reload(true);", :size => "icon", :v => "2") %>
用户登录facebook之后,你就可以获取到用户和其好友的信息,比如
<%= facebook_session.user.name %> <% facebook_session.user.friends.each do |friend| %> <%= image_tag friend.pic_square if friend.pic_square %> <%= friend.first_name %> <%= friend.last_name %> <% end %>
详细的接口可以看看facebooker的rdoc。
Add a Comment