0

Je suis en train de créer une application de test de la source est la suivante (index.php):erreurs API Facebook JS

<?php 
include_once 'facebook/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'YYYYYYYYYYYYYYYY', 
    'secret' => 'XXXXXXXXXXXXXXXXXXXXXX', 
)); 

$user = $facebook->getUser(); 

if($user) 
{ 
    try 
    { 
    $user_profile = $facebook->api('/me'); 
    } 
    catch(FacebookApiException $e) 
    { 
    error_log($e); 
    $user = null; 
    } 
} 

if(! $user) 
{ 
    echo "<script type=\"text/javascript\">top.location.href='" . $facebook->getLoginUrl(array(
    'scope' => 'publish_actions,publish_stream', 
    'redirect_uri' => 'http://apps.facebook.com/MYAPPURL/' 
)) . "'</script>"; 
    exit; 
} 
?> 
<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<title>TribusWar</title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<script src="http://connect.facebook.net/en_US/all.js#appId=YYYYYYYYYYYYYYYY&amp;xfbml=1"></script> 
</head> 
<body> 
<input type="button" value="Compartilhar" id="xxxxx" /> 
</body> 
<script type="text/javascript"> 
document.getElementById('xxxxx').addEventListener('click', function() 
{ 
    FB.ui({ 
    method: 'feed', 
    display: 'iframe', 
    name: 'Dialog Name', 
    caption: 'Caption for dialog', 
    description: 'Lorem ipsum dolor sit amet...' 
    }, function() 
    { 
    alert(arguments); 
    }); 
}, false); 
</script> 
</html> 

Avec ce code, je voulais montrer un bouton sur la page qui se déclenche une publier dialogue lorsque cliqué. Lorsque la page se charge, il génère une erreur, lorsque le bouton est cliqué, une autre erreur se produit et la boîte de dialogue n'apparaît pas:

Firebug Console http://img17.imageshack.us/img17/8347/capturadetelayo.png

Je ne sais pas ce qui va mal avec cela. Je ne sais pas si l'autorisation publish_stream est vraiment nécessaire car j'essaie d'utiliser la boîte de dialogue facebook. Quelqu'un peut-il m'aider?

Répondre

2

Comme Nava Salvatore (et la console de débogage) dit, vous devez ajouter:

<div id="fb-root"></div> 

quelque part dans le <body> de votre code. De plus, votre bloc final <script> doit être précédé de la balise </body> (par convention). Vous n'avez pas besoin d'autorisations supplémentaires pour afficher simplement une boîte de dialogue; publish_stream n'est pas nécessaire.

+0

De plus, j'ai ajouté 'link' et' picture' aux options – Wanderson

+0

Quoi qu'il en soit, est-il possible d'ajouter simplement le nom d'utilisateur au texte de la boîte de dialogue? – Wanderson

+0

Pas que je sache sur le dessus de ma tête; mais c'est une question différente. –

1

essayer d'ajouter

<div id="fb-root"></div> 

avant <script