これは、私が運営しているFacebookConnectサイトから使用した例です。
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);
メソッドは通常のFB.ConnectJSメソッドとほとんど同じなので、似たようなものが機能するはずです。
私はあなたがあなたの呼び出し<?php echo $message; ?>への最初のパラメータとして持っていることを指摘します。Facebook.streamPublish()がテキスト文字列であると仮定する$messageと、有効なJavascriptであるためには、その出力を引用符で囲む必要があります。同様に、このreturn attachment;線は私にはあまり意味がありません。なぜそこにreturnステートメントがあるのですか?私はあなたのコードをこれに変更します:
<script type="text/javascript">
var attachment = <?php echo json_encode($attachment); ?>;
Facebook.streamPublish('<?php echo addslashes($message); ?>', attachment, null, <?php echo $user; ?>);
</script>