2

Facebook 用の小さなゲームのコーディングを試みるために Facebook Platform Development という本を読んでいますが、「小さな」問題に遭遇しました。これがログに記録されるたびに、コンピューターのデータベースにユーザーを挿入しようとしています。 . 私は本に書かれているいくつかの方法を使用していますが、いくつかの問題があるようです:

  1. RoR の Facebooker ヘルパーを使用して Facebook から session_key を取得できないようです。したがって、この値はデータベースのテーブルでは null になります。

  2. Web ページをリロードするたびに、facebook_id が同じであっても、同じユーザーがデータベースのテーブルに別の行に追加されていることがわかります。これが変更された場合、属性 session_key を更新することになっています-とにかく、今のところこれは null です。

これらは、これらすべてを実行するために私が使用している 3 つの方法です。

def self.for(facebook_id,facebook_session=nil)
    user = User.find_or_create_by_facebook_id(facebook_id)
    unless facebook_session.nil?
      user.store_session(facebook_session.session_key)
    end
  end

  def store_session(session_key)
    if self.session_key != session_key
      update_attribute(:session_key, session_key)
    end
  end

  # Re-create a Facebooker::Session object outside a request
  def facebook_session
    @facebook_session ||= returning Facebooker::Session.create do |session|
      # Facebook sessions are good for only one hour storing
      session.secure_with!(session_key,facebook_id,1.hour.from_now)
    end
  end

みなさん、よろしくお願いします! 1.

4

1 に答える 1

1

残念ながら、FacebookはAPIを常に変更しています。

書籍が最新であり、書籍が作成された時点でAPIが変更されていないことを確認してください。また、宝石も最新であることを確認してください。

Facebookを扱うときは、個人的にhttp://github.com/chrisdinn/hyper-graphを使用します。Facebookグラフ(graph.facebook.com)を呼び出します

于 2010-08-10T11:59:24.770 に答える