2010-08-10 10 views
2

Je lis le livre Facebook Platform Development afin d'essayer de coder un petit jeu pour Facebook, et j'ai rencontré un "petit" problème: j'essaie d'insérer un utilisateur tous les temps que cela est enregistré, dans une base de données dans mon ordinateur. J'utilise deux méthodes écrites dans le livre, mais il semble y avoir quelques problèmes:Problème de session en utilisant Facebooker avec Ruby on Rails

  1. Je ne peux pas sembler récupérer le session_key de Facebook en utilisant les aides Facebooker pour RoR, et donc ce La valeur est null dans la table de ma base de données. Chaque fois que je recharge la page Web, je peux voir que même si le facebook_id est le même, le même utilisateur est ajouté dans une autre ligne à ma table dans la base de données, même si ce n'est pas le cas; il est juste supposé mettre à jour l'attribut session_key si cela change - tout de même, maintenant c'est null.

Ce sont les trois méthodes que je me sers pour effectuer tout cela:

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 

Merci beaucoup à l'avance pour tout le monde 1.

Répondre

1

Hey tristement facebook change son API tout le temps!

Assurez-vous que le livre est à jour et que l'API n'a pas changé depuis l'écriture du livre. Vérifiez également que la gemme est également à jour.

J'utilise personnellement http://github.com/chrisdinn/hyper-graph lorsque je fais affaire avec facebook. Il fait des appels au graphe Facebook (graph.facebook.com)

+0

Eh bien, le livre n'est pas à jour - écrit en 2007 - mais la plupart des choses dont il parle fonctionnent réellement, car j'ai en fait l'application en cours d'exécution même avec l'authentification - probablement parce que j'utilise Facebooker (http://facebooker.rubyforge.org) et c'est "l'homme au milieu" entre moi et Facebook, mais les trucs des sessions ne semblent pas fonctionner et je ne sais pas Je ne sais pas où jeter un oeil .. – noloman

+0

Ah - désolé, mais tout ce que j'ai écrit au fil des ans en utilisant facebook ne semble pas fonctionner. Je pense qu'ils gardent certaines dépendances fonctionnantes ou changent aléatoirement divers appels api. Je recommande fortement hyper graphique et l'API graphique Facebook. – Steve

+0

au lieu de facebooker vous voulez dire? – noloman