2009-12-30 5 views
1

J'essaie d'appeler un formulaire de flux dans mon application Facebook et je ne suis pas sûr de savoir comment le faire. Je ne connais pas la FBJS et son API. Plus précisément, je dois le dialogue ci-dessous pour montrer: http://wiki.developers.facebook.com/index.php/Feed_FormsComment utiliser Facebook FBJS Feed Forms

Voici ce que je suis pour l'instant:

<script type="text/javascript"> 
var attachment = <?php echo json_encode($attachment); ?>; 
return attachment; 
Facebook.streamPublish(<?php echo $message; ?>, attachment, null, <?php echo $user; ?>); 
</script> 

Y at-il autre chose que je dois faire pour appeler correctement une forme d'alimentation? Un exemple de code m'aiderait beaucoup si quelqu'un est prêt à en écrire un.

+0

Il semble que vous ayez un code (partiel) qui devrait fonctionner. Y a-t-il une erreur particulière ou un problème que vous rencontrez? En termes d'exemples, il y en a sur cette page ici: http://wiki.developers.facebook.com/index.php/Facebook.streamPublish – mopoke

Répondre

1

Pour les pages de toile FBML, tout ce que vous devez faire est d'exécuter la commande comme suit:

<script type="text/javascript"> 

var attachment = <?php echo json_encode($attachment); ?>; 

Facebook.streamPublish('', attachment, null);  

</script> 

Cela devrait facilement faire apparaître le formulaire d'alimentation.

+0

Mon mauvais, il a mis à jour maintenant parce qu'il y avait un problème de syntaxe. –

2

Voici un exemple que je donne d'un Facebook Connect site que j'OPERER:

var message = 'This is my message!'; 
var attachment = { 
    'name':'Page name', 
    'href':'http://mysite.com', 
    'caption':'Some kind of caption'; 
}; 
attachment.media = [{'type':'image','src':'http://mysite.com/images/lolcat.jpg','href':'http://mysite.com'}]; 
var action_links = [{'text':'Action Link!','href':'http://mysite.com'}]; 
FB.Connect.streamPublish(message, attachment, action_links); 

Les FB.Connect méthodes sont presque identiques aux méthodes normales JS, donc quelque chose de similaire devrait fonctionner pour vous.

Je tiens à souligner que vous avez <?php echo $message; ?> comme premier paramètre à votre appel Facebook.streamPublish(). En supposant que $message est une chaîne de texte, vous devez envelopper cette sortie entre guillemets pour qu'elle soit valide en Javascript. De plus, la ligne return attachment; n'a pas beaucoup de sens pour moi. Pourquoi y a-t-il une déclaration de retour ici? Je change votre code à ceci:

<script type="text/javascript"> 
var attachment = <?php echo json_encode($attachment); ?>; 
Facebook.streamPublish('<?php echo addslashes($message); ?>', attachment, null, <?php echo $user; ?>); 
</script> 
+0

Désolé à ce sujet, je voulais mettre ça là pour voir si quelque chose allait apparaître . J'ai essayé le code suivant que vous avez posté et il ne semble même pas afficher le formulaire de flux du tout. –

+0

Hmm ... eh bien, vous devriez changer mon code pour utiliser 'Facebook.streamPublish' plutôt que' FB.Connect.streamPublish'. Cependant, si le vôtre ne fonctionne pas, je vérifie que vous avez une session facebook valide, et que les bibliothèques FBJS sont chargées. Avez-vous des erreurs Javascript? – zombat

+0

Malheureusement, je ne reçois aucune erreur. Et j'ai aussi modifié votre code. Il se peut que 'json_encode()' ne crée pas correctement le tableau JSON. Je vais faire la pièce jointe dans le formulaire que vous avez indiqué ci-dessus pour voir si cela fonctionne. Aussi, est-ce juste que dans FBML vous ne recevez pas d'erreurs Javascript? –

Questions connexes