ruby-on-rails - 使用 Rails 3 + OmniAuth + FBGraph 从 facebook 添加好友

标签 ruby-on-rails ruby-on-rails-3 facebook-graph-api facebook

我目前正在尝试向我们的注册系统编写添加好友步骤,并且有人要求我实现类似于 foursquare 工作方式的功能。

它会从 Facebook 上拉下您的好友,检查他们是否已经在 foursquare 网站上,然后询问您是否想与他们联系。

实现此类功能的最佳方法是什么?

我已经看过 FB JS SDK 的示例,但我更喜欢更集成的方法。

谢谢 亚当

最佳答案

我发现的最好方法是将 devise 与 oauth 和 fb_graph gems 结合使用(如指定的 herehere )。我的版本有问题,所以我的 gemfile 配置如下所示:

gem 'devise', :git => 'git://github.com/plataformatec/devise.git'
gem 'omniauth', '>=0.2.0.beta'
gem 'oa-oauth', :require => 'omniauth/oauth'
gem 'fb_graph'

(我的配置相当旧 - 设计最新分支现在可能以更开箱即用的方式支持omniauth)。

我的设备初始化程序:

config.omniauth :facebook_publish, "APP_ID", "APP_SECRET"

在您的用户模型中:

devise :omniauthable

def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
  data = access_token['extra']['user_hash']
  if user = User.find_by_email(data["email"])
    user
  else # Create a user with a stub password. 
    User.create(:email => data["email"], :password => Devise.friendly_token[0,20]) 
  end
end

为了连接 Facebook - 转到路径:

user_omniauth_authorize_path(:facebook)

基本上这就是连接所需的全部内容。为了获得图表,我现在使用:

 facebook_user = FbGraph::User.new('me', :access_token => access_token['credentials']['token']).fetch

对于 friend 们:

facebook_user.friends

就是这样。希望对您有所帮助。

关于ruby-on-rails - 使用 Rails 3 + OmniAuth + FBGraph 从 facebook 添加好友,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768356/

相关文章:

ruby-on-rails - Rails 应用程序无法连接到 postgresql,但 rake、rails c 和 rails db 可以

javascript - 如何使用 jQuery 创建一个图像工具提示悬停在表单标签上?

ruby-on-rails - 如何屏蔽图片的 Facebook graph api URL?

ruby-on-rails - 为什么我的 rspec 测试失败了?

ruby-on-rails - 单击 Rails 中的 "Back"按钮后如何返回到上一个 URL

ruby-on-rails - 在 Ruby 中对数组进行排序(特例)

ruby - 为什么下面的代码在 ruby​​ 中有效?

facebook - 共享 mp4 视频显示 "download file",而不是在时间轴上播放

python - 从 flask 中的 url 获取 facebook 访问 token

ruby-on-rails - Resque清除失败的作业成功重试