0

我正在使用下面的代码,就像来自https://developers.facebook.com/docs/reference/dialogs/feed/一样发布到用户墙。然而,帖子并没有出现在墙上。有什么我想念的吗?

FB.ui({
    method: 'feed',
    link: 'https://developers.facebook.com/docs/reference/dialogs/',
    picture: 'http://fbrell.com/f8.jpg',
    name: 'Facebook Dialogs',
    caption: 'Reference Documentation',
    description: 'Using Dialogs to interact with people.'
}, function(response){});

我已经connect.facebook.net/en_US/all.js加载了 Javascript SDK。我必须添加以下代码吗?

FB.init({
    appId: 'xxxXXxxx',
    status: true,
    cookie: true,
    xfbml: true
});
4

1 回答 1

0

它可能不起作用的原因有很多。您提供的信息确实不够,所以我将继续列出它可能不起作用的几个原因:

  • 确保您在 [Facebook 开发人员] ( https://developers.facebook.com/apps/ ) 上创建了一个应用程序,并且站点 URL 与应用程序域一起正确
  • 中的“xxxXXxxx”FB.init()是在 Facebook 上创建应用程序时生成的应用程序 ID。
  • 如果您在本地主机上尝试,它将永远无法工作。

最后,您的代码应如下所示:

<div id="fb-root"></div>
<script type="text/javascript">

    window.fbAsyncInit = function() {
        FB.init({
            appId      : 'xxxXXXxxx', // App ID
            channelURL : '../../Vendor/channel.php', // Channel File
            status     : true, // check login status
            cookie     : true, // enable cookies to allow the server to access the session
            oauth      : true, // enable OAuth 2.0
            xfbml      : true  // parse XFBML
        });

    function postFeed(){

            FB.ui({method: 'feed',
        picture: 'https://www.example.com/img/fb-post.jpg',
        link: "http://www.example.com/",
        caption: "example.com",
        description: "a small description associated with your post",
            }, requestCallback);
    }


    // Load the SDK Asynchronously
    (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol 
    + '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
    }());
</script>
于 2013-07-23T12:56:47.617 回答