簡體   English   中英

使用 Rails 3 + OmniAuth + FBGraph 從 facebook 添加朋友

[英]Add friends from facebook with Rails 3 + OmniAuth + FBGraph

我目前正在嘗試為我們的注冊系統編寫一個添加朋友的步驟,並且我被要求實現類似於foursquare 工作方式的東西。

它從 Facebook 上拉下你的朋友,檢查他們中是否有任何人已經在 Foursquare 網站上,然后詢問你是否想與他們聯系。

實現這種功能的最佳方法是什么?

我已經看過 FB JS SDK 的例子,但是我更喜歡更集成的方法。

謝謝亞當

我發現的最好方法是使用帶有 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

而對於朋友們:

facebook_user.friends

就是這樣。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM