2011-07-28 67 views
0

虽然我正在使用FB.ui,但我在使用FB.ui时遇到了一个错误。
我想要一个按钮,以便用户可以在他们的墙上分享页面。
当我点击该按钮时,我会看到一个说明如下的Facebook弹出窗口:
发生错误,请稍后再试。FB.ui错误,无法使用'feed'方法

你能看到有什么问题吗?
谢谢!

这里是我的代码:

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
FB.init 
({ 
    appId:'MYAPPID', 
    status:true, 
    cookie: true, 
    xfbml:true 
}); 
function shareProject2() 
{ 
    FB.ui(
       { 
       method: 'feed', 
       name: 'Facebook Dialogs', 
       link: 'http://developers.facebook.com/docs/reference/dialogs/', 
       picture: 'http://fbrell.com/f8.jpg', 
       caption: 'Reference Documentation', 
       description: 'Dialogs provide a simple, consistent interface for applications to interface with users.', 
       message: 'Facebook Dialogs are easy!' 
       }, 
       function(response) { 
       if (response && response.post_id) { 
        getPermission(); 
       } else { 
        alert('Post was not published.'); 
       } 
       }); 
    return false; 
} 


</script> 

<a href="#" onclick="shareProject2();" >Share</a> 
+0

你不应该设置消息参数 - 这应该由用户完成。 [Facebook的平台政策](http://developers.facebook.com/policy/) – jBit

+0

有人能解决这个问题吗?我有同样的问题。 (删除消息参数并没有帮助) –

+0

BTW传递名称,图片,描述等。从Graph API v2.9开始,不再适用于'FB.ui'。它已被废弃,并于2017年7月17日正式死亡。 –

回答

0

你试过从服务器传递会话到客户端的JavaScript

这将在PHP来实现的:

<?php 
require 'facebook.php'; 

$facebook = new Facebook(array(
    'appId' => $appId, // Your App Id 
    'secret' => $secret, // Your App Secret 
    'cookie' => true, 
)); 

$session = $facebook->getSession(); 
?> 

<script> 
    FB.init 
    ({ 
     appId:'MYAPPID',<?php 
     echo (!empty($session)) ? 'session: ' . json_encode($session) . ',' : '' ?> 
     status:true, 
     cookie: true, 
     xfbml:true 
    }); 

... 

</script>