2009-07-14 13 views
1

私は、許可とオプションのコールバック関数を受け入れるFB.Connect.showPermissionDialog()関数のコールバック関数を作成しています。コールバック関数のパラメータの問題

ユーザーがアクセス許可ダイアログを拒否した場合、nullが渡されるはずです。しかし、何らかの理由で、私のスクリプトは、権限要求が失敗した場合でも常に投稿要求を作成します。

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'});}  
     }); 
     });"); 

なぜ受け入れられた値が正しく読み取られていないのかわかりません。助けてくれてありがとう。

答えて

3

私の最初の推測は、JavaScriptのnull値が実際には返されておらず、代わりに他の偽の値が返されているということです。

私はすべての偽のような値をテストするためにこれに変えてみたい:

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

いやを。しかし、Facebookのドキュメントに関する何か:P –

+0

ええ、私はそのドキュメントをチェックアウトしました。あまりにも大きかった。 – Triptych

1

放火犯を行います

console.log(accepted) 

そして、あなたが戻って取得しているものを参照してください。あなたのロジックに応じて未定義である可能性があります。

1

たぶん、あなたの周りのあなたのロジックを変更する必要があります。素晴らしい仕事

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');} 
     }); 
     }); 
    "); 
関連する問題