繁体   English   中英

使FB JS SDK在FB canvas应用上工作时出现问题

[英]Problem getting FB JS SDK to work on FB canvas app

我正在将我的Facebook canvas应用程序迁移到使用新的PHP SDK。 但是,我也无法使JavaScript SDK正常工作。

我想利用JavaScript SDK中的stream.publish之类的方法。 不幸的是,到目前为止,我还无法使任何事情起作用。 我的应用程序的index.php文件的标题中包含以下内容:

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_GB/all.js"></script>
<script>
    FB.init({appId: *);
    FB.ui({
        method: 'stream.publish',
        message: 'Check out this great app!'
    });
</script>

由于明显的原因,我的应用程序ID已被删除。

我希望上面的内容能给用户提示将消息发布到其流的地方,但事实并非如此。 我什至可以在Facebook canvas应用程序中使用新的JavaScript SDK吗? 还是只为iFrame应用程序保留并仅在网站上使用Facebook Connect?

抱歉,您不能在FBML canvas应用程序中使用JavaScript SDK甚至纯JavaScript。 Facebook出于功能有限(出于安全原因)创建了自己的JavaScript替代品FBJS 因此,在canvas应用中,您只能使用PHP SDK,FBML和FBJS。 为了在墙上发布,您可能需要使用PHP SDK。

确保正在构建IFrame Canvas应用程序,而不是FBML应用程序。 JavaScript SDK仅适用于IFrame。 这是在Canvas上stream.publish的示例: http : //apps.facebook.com/fbrelll/fb.ui/stream.publish

我已经使用以下方法解决了它:

<?php
$attachment = array(
    'name' => 'Attachment name here',
    'href' => 'Attachment URL here',
    'media' => array(array(
        'type' => 'image',
        'src'  => 'Image URL here',
        'href' => 'Link URL here',
    )),
    'caption' => 'Caption here',
);
$action_links = array(array(
    'text' => 'Action link text',
    'href' => 'Action link href',
));
?>
<script type="text/javascript">
<!--
var message = "Your status update here...";
var attachment = <?php echo json_encode($attachment); ?>;
var action_links = <?php echo json_encode($action_links); ?>;
Facebook.streamPublish(message, attachment, action_links);
//-->
</script>

感谢所有回答。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM