Facebook 用の小さなゲームのコーディングを試みるために Facebook Platform Development という本を読んでいますが、「小さな」問題に遭遇しました。これがログに記録されるたびに、コンピューターのデータベースにユーザーを挿入しようとしています。 . 私は本に書かれているいくつかの方法を使用していますが、いくつかの問題があるようです:
RoR の Facebooker ヘルパーを使用して Facebook から session_key を取得できないようです。したがって、この値はデータベースのテーブルでは null になります。
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.