我目前正在尝试向我们的注册系统编写添加好友步骤,并且有人要求我实现类似于 foursquare 工作方式的功能。
它会从 Facebook 上拉下您的好友,检查他们是否已经在 foursquare 网站上,然后询问您是否想与他们联系。
实现此类功能的最佳方法是什么?
我已经看过 FB JS SDK 的示例,但我更喜欢更集成的方法。
谢谢 亚当
最佳答案
我发现的最好方法是将 devise 与 oauth 和 fb_graph gems 结合使用(如指定的 here 和 here )。我的版本有问题,所以我的 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/