1

ユーザーが Facebook から私のアプリにサインアップするとき、彼が管理するすべてのページを表示したいと思います。

これは、FB API からデータを保存する方法です。

  def self.create_user_from_facebook(auth_hash)
    self.create({
      :facebook_uid => auth_hash["uid"],
      :name => auth_hash["info"]["name"],
    })
  end

ここで、ページのリストを印刷しようとする方法は次のとおりです。

 - fbpages(@user).each do |page|
    = f.label :fbpage, value: page.identifier, :class => 'radio' do
      = f.radio_button :fbpage, page.identifier
      = link_to page.name, page.link, target: '_blank'

そしてfbpages方法:

def fbpages(user)
    if user.fbtoken.present?
      begin
        fbpages = FbGraph::User.me(user.fbtoken).accounts
      rescue
        user.update_attribute(:fbtoken, nil)
        fbpages = nil
      end
    end
  end

fbtokenですaccess_token。しかし、どうすればこのトークンを取得できますか? auth_hashメソッドに含まれるものを出力しようとしましたが、 access_tokencreate_user_from_facebookが表示されません。

私は何を間違っていますか?

4

1 に答える 1

0

あなたはFBGraphページで見ることができます:

// code is set
// we'll send that and get the access token
graph.authorize({
    "client_id":      conf.client_id
  , "redirect_uri":   conf.redirect_uri
  , "client_secret":  conf.client_secret
  , "code":           req.query.code
}, function (err, facebookRes) {
  res.redirect('/UserHasLoggedIn');
});

これcodeは、ユーザーが Facebook アプリケーションにログインしたときに取得するリダイレクトされた URL のパラメーターに含まれています。これを取得したらcode、このサンプルを使用します。

于 2013-02-20T00:20:22.420 に答える