Auto login facebook - FB.De l'événement.abonnez-vous auth.la connexion ne fonctionne pas
pour une raison aujourd'hui mon code de connexion automatique pour existaient membres cassé.
normalement, ce code fonctionne parfaitement, après vérification avec firebug, j'ai vu qu'il y a un problème à trouver des 'auth.connexion pour quelque raison, et à cet effet, l'appel de la fenêtre.emplacement.reload(); ne fonctionne pas. (si j'ai actualiser manuellement, puis le membre montre que de se connecter correctement,le problème est juste la connexion automatique avant la session est ouverte que besoin d'un rafraichissement de la page)
J'ai aussi essayé de voir si le problème est uniquement un problème d'automatique.la connexion et l'a remplacé par 'auth.authResponseChange' quand j'ai vu la page conservés sur rafraîchissant ... donc je me dis que le problème est avec 'auth.login' déclencheur.
personne ne sait pour une raison spéciale, ou tout changement facebook qui pourrait causer ce problème?
*mise à jour* BUG est résolu! ce problème a été résolu par facebook.
ce bug a été signalé et a également répondu par facebook ici-
https://developers.facebook.com/bugs/524245490930206?browse=search_50f87d9e8869a5e06191882#
BTW,Ici, c'est UN TRAVAIL NOUVEAU code:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php =$APP_ID ?>',
status : true, //check login status
cookie : true, //enable cookies to allow the server to access the session
xfbml : true, //parse XFBML
oauth : true
});
//Additional initialization code here
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
};
//Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
Vous devez vous connecter pour publier un commentaire.
il semble que je suis en train de vivre le même problème ..
Jusqu'à il y a quelques heures, lorsqu'un utilisateur (qui avait déjà autorisé et enregistré dans mon app précédemment) ouvert mon site web et le cookie a été expiré, le bouton de connexion est apparu, mais après quelques secondes (le temps de la JS SDK pour déclencher la fonction de connexion), il est automatiquement connecté et que la page a été rechargé sans le bouton de connexion et les informations de l'utilisateur.
Maintenant, quand un utilisateur enregistré ouvre mon site après cookie expiré, le bouton de connexion s'affiche de nouveau, mais l'utilisateur n'est pas connecté automatiquement et la page ne recharge pas comme il l'a fait avant. La chose étrange est que si je clique sur le bouton de connexion, ça ne fonctionne pas non plus! Si j'actualise la page manuellement le bouton de connexion disparaît et les informations de l'utilisateur est affiché, il semble donc que l'utilisateur a effectivement été enregistrés, mais l'événement n'a pas été pris pour déclencher le rechargement de la page.
Si j'manuellement la session et reconnectez-vous (donc en utilisant le sdk php) tout fonctionne.
Mon code:
Mise à JOUR j'ai ajouté ces quelques lignes de mon code js:
Alors maintenant, lorsque l'utilisateur ouvre ma page après jeton expiré:
(comme avant)
avant d')
pour vous maintenant, car il apparaît de l'alerte: Le statut de l'
session:connecté)
le script n'est pas au courant de l'réussi connexion -> la page n'est pas
reloaded
status: true
, cela commence à travailler de nouveau?" Ce qui, évidemment, ne fonctionne pas! je pense donc que quand ils en ont fixé le bogue ils n'étaient pas destinés à influer sur l'auth.comportement de connexion comme ils l'ont fait. Ils ont peut-être simplement la conséquence inattendue de garantie problème. Aussi, je ne sais même pas si le problème est lié au bug-ils fixes ou non. Mon code devrait fonctionner causeit moyen de recharger la page uniquement lorsque l'utilisateur se connecte avec succès (et non pas à chaque chargement de la page), mais en l'état actuel, il ne fonctionne pas!auth.statusChange
ne pas se déclencher si l'utilisateur est déjà connecté + autorisé. J'ai eu à vous abonner àauth.authResponseChange
pour que l'événement puisse être déclenchée.J'ai changé de auth.connexion à auth.statusChange, et également emballé le tout dans getLoginStatus, de sorte qu'il s'exécute uniquement lorsqu'il n'est pas connecté, il semble fonctionner ok. Ressemble à ceci (à l'intérieur de la fenêtre.fbAsyncInit = function() {)
J'ai eu exactement le même problème. Le SDK javascript fait les utilisateurs de l'auto-login avec un rechargement de la page si elles connecté mon application et leur jeton d'accès avait expiré.
Je l'ai résolu en passant à auth.statusChange au lieu de auth.connexion.
Puis-je vérifier avec le PHP Facebook SDK si l'utilisateur est connecté et s'il l'est, je ne souscris pas à l'auth.statusChange des événements en javascript. (Si vous incluez l'auth.statusChange en javascript lorsque l'utilisateur est connecté, vous allez vous retrouver dans une page infinie de la boucle d'actualisation, au moins c'était le cas avec mon application).
auth.login
serait déclenché à chaque chargement de la page, au lieu de seulement lorsque l'état passe deunknown
àconnected
, c'est à dire. que l'utilisateur soit connecté à Facebook lors de l'utilisation de votre application. Leauth.statusChange
etauth.authResponseChange
événements encore le feu comme avant et vous devriez être en mesure de modifier votre code en conséquence."