J'ai configuré Facebook Connect sur mon site, et la connexion fonctionne correctement. J'ai mis en place un auditeur pour détecter un changement d'état de connexion, comme suit:À quelle fréquence une session Facebook Connect est-elle actualisée?
FB.Event.subscribe('auth.sessionChange', function() {
window.location.reload();
});
Tout bien. Sauf que laisser une fenêtre de navigateur ouverte provoque le rechargement de la page après peut-être 20 minutes. Ainsi, auth.sessionChange est en train de tirer à un certain intervalle. Ce qui peut causer des ravages, en particulier si la dernière page était une soumission de formulaire POST.
Dans les documents FB, il est écrit "Les sessions sont actualisées au fil du temps tant que l'utilisateur est actif avec votre application." À quelle fréquence cette session est-elle actualisée?
Et comment puis-je protéger la page contre le rechargement si ce n'est pas nécessaire? Un conditionnel peut-être dans cette fonction ??
EDIT - ajouter des informations de clarification:
Je pensais que je voudrais ajouter quelques informations pour donner ceux qui offrent les conseils un peu plus pour aller (merci beaucoup BTW):
la raison pour laquelle je l'écouteur déclenchant un rechargement est parce que je voulais que les utilisateurs soient connectés au site chaque fois qu'ils visitent - s'ils avaient déjà une session dans FB. Je détectais une session active avec le JS SDK, que je sais pouvoir se connecter seul, mais j'avais besoin de déclencher un rechargement de page après que le JS ait fait la détection, afin de définir une session PHP pour le site - requis étape. Je ne pouvais pas faire la connexion PHP sans d'abord laisser le JS détecter la session FB dans le navigateur.
Facebook ne le décourage pas, en fait beaucoup d'ingénieurs vous suggèrent de l'utiliser. Mon livre sur la façon de développer des applications Facebook a même eu des extraits sur la façon dont il a été suggéré de l'utiliser dans la majorité des applications, sauf pour ceux qui ont un nombre élevé de pages vues. Ce qu'il fait ci-dessus est probablement un cas où offline_access fonctionne le mieux, sinon l'utilisateur devra rafraîchir la page sur une base beaucoup plus fréquente, comme 10 minutes. –
Demander l'autorisation 'offline_access' juste pour ne pas" doubler "l'envoi d'un formulaire lorsque la page est rechargée n'est pas une bonne raison (du moins pour moi). Bien que cette autorisation puisse être utilisée lorsque l'utilisateur est déjà connecté (même si je ne peux pas penser à un cas), il est destiné aux activités "hors ligne" dont l'application a besoin lorsque l'utilisateur n'est pas connecté à Facebook . – ifaour
Veuillez également noter qu'il y a deux parties dans la question: 1) comment éviter un rechargement (que j'ai suggéré une réponse) 2) à quelle fréquence l'événement est appelé (dont je ne connais pas la réponse) – ifaour