2009-07-14 6 views
1

J'écris une fonction de rappel pour la fonction FB.Connect.showPermissionDialog() qui accepte les autorisations et une fonction de rappel facultative.Problème de paramètre de fonction de rappel

Il est supposé être passé null si l'utilisateur rejette la boîte de dialogue d'autorisations. Mais pour une raison quelconque, mon script fait toujours la demande de publication même si la demande d'autorisation a échoué.

echo("FB.ensureInit ( function() { 
     FB.Connect.showPermissionDialog('email,offline_access', 
     function(accepted) { 
      if(accepted==null) {alert('failure');} else { 
      $.post(\"http://www.domain.com/permissions.php\", 
        { username:$userID,mode:'accepted'});}  
     }); 
     });"); 

Vous ne savez pas pourquoi il ne lit pas correctement la valeur acceptée. Merci pour l'aide.

Répondre

3

Ma première supposition est que la valeur Javascript null n'est pas réellement retournée, et une autre valeur de type faux est retournée à la place.

Je vais essayer de changer ce pour tester toutes les valeurs fausses comme:

if (!accepted) {alert('failure')} else { 
... 
+0

oui qui a très bien fonctionné. dit quelque chose au sujet de la documentation de facebook cependant: P –

+0

Ouais j'ai vérifié cette documentation. N'était pas trop génial. – Triptych

1

Do avec Firebug:

console.log(accepted) 

Et voyez ce que vous obtenez en arrière. Pourrait être indéfini, ce qui selon votre logique passe encore.

1

Peut-être que vous devriez changer votre logique autour de:

echo("FB.ensureInit ( function() { 
     FB.Connect.showPermissionDialog('email,offline_access', 
     function(accepted) { 
      if(accepted !== null) { 
      $.post(\"http://www.domain.com/permissions.php\", 
        { username:$userID,mode:'accepted'});} 
      } else {alert('failure');} 
     }); 
     }); 
    "); 
Questions connexes