0

我正在使用omniauth 从facebook 登录用户,并且我也在我的devise.rb 初始化文件中使用了devise gem。我添加了

config.omniauth :facebook, app_id, app_secret,
    {:scope => 'email, offline_access', :client_options => 
      {:ssl =>
          {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}
      }
    }

并且它工作得很好,因为我在我的应用程序中有用户“登录”,但问题是我不知道如何继续并获取用户个人资料信息及其朋友信息以及订阅和状态更新。

有可用的图形 Api 方法

@graph = Koala::Facebook::API.new(acess_token)
    @profile = @graph.get_object("me")
    @friends = @graph.get_connections("me", "friends")

但我不知道如何让“access_token”做所有这些事情。

所以总结一下我需要AccessToken请提供明确的答案plzz

等待你的回复

4

1 回答 1

0

雅虎明白了:)

在以下方法中$access_token = auth.credentials.token语句指向获取访问令牌。

def self.find_for_provider_oauth(auth, signed_in_resource=nil)
    user = User.where(:provider => auth.provider, :uid => auth.uid).first
    $access_token = auth.credentials.token
    unless user

      user = User.create(name:auth.extra.raw_info.name,
        provider:auth.provider,
        uid:auth.uid,
        email:auth.info.email,
        password:Devise.friendly_token[0,20]
      )
    end
    user
  end

或者你可以通过这个得到它

request.env["omniauth.auth"].credentials.token

是否有任何其他获得 access_token plzz 共享的最佳方法我需要优化和良好的实践,但现在它的工作。

于 2013-02-04T07:21:15.677 回答