没有回复FaceBook共享?

时间:2015-03-23 10:07:02

标签: jquery facebook fbml fbconnect

我希望在Facebook上进行共享时收到响应,并在响应时发出警报。  我做了以下脚本 注意:此问题已经提出但尚未回答。 Click here

    <div id="fb-root"></div>
    <script type="text/javascript">
window.fbAsyncInit = function() 
                         {
                                FB.init({
                                appId:'<?php echo $this->config->item('appID'); ?>', cookie:true,
                                status:true, xfbml:true,oauth : true
                                        });
                         };
                        (function(d){
                                var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
                                if (d.getElementById(id)) {return;}
                                js = d.createElement('script'); js.id = id; js.async = true;
                                js.src = "//connect.facebook.net/en_US/all.js";
                                ref.parentNode.insertBefore(js, ref);
                                }(document));

function get_fb_share()
{
    FB.ui(
   {
     method: 'feed',
     name: 'IGUTS Share',
     link: "<?php echo base_url();?>",
     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) {
       alert('Post was published.');
     } else {
       alert('Post was not published.');
     }
   }
 );
}
</script>

我把上面的代码放在标题

然后我通过以下方式调用get_fb_share()

<div class="fb-share-button" data-href="<?php echo base_url();?>" 
                                                 data-width="50" data-type="button_count"
                                                 onclick="get_fb_share();"></div>

现在我不知道我做错了什么,我可以分享链接,但我无法得到任何FB回复。

有人可以告诉我为什么吗?

EDIT

我发现当我使用这个div进行分享时,即

<div class="fb-share-button" data-href="<?php echo base_url();?>" 
                                                     data-width="50" data-type="button_count"
                                                     onclick="get_fb_share();"></div>

我没有得到任何回应。

但如果我使用这样的普通按钮,即

<input type="button" onclick="get_fb_share();" value="share"/>

然后我得到了答复。但这并不完美。我正在使用facebook

<div class="fb-share-button">

因为它显示没有。股票也是如此。这就是为什么我需要get_fb_share()函数由facebook sharing div调用,而不仅仅是通过任何按钮调用。

请帮我找一个解决方案。

1 个答案:

答案 0 :(得分:1)

远程弃用Feed对话框,您应该使用share dialog代替。处理起来要容易得多,只需从URL中获取Open Graph标记:

FB.ui({
    method: 'share',
    href: your-url
}, function (response) {
    console.log(response);
});

当我取消分享时,这是我在控制台中获得的内容:

  

对象{error_code:4201,error_message:“用户取消了对话框流程”}

......这就是我分享时所得到的:

  

[]

是的,这是一个空数组,它将点击“发布未发布”警报。只有在您使用publish_actions授权用户时,才能使用帖子ID,因为您可以在文档中阅读。

这对我有用:

FB.ui({
    method: 'share',
    href: your-url
}, function (response) {
    if (response.error_code) {
        console.log(response);
    } else {
        console.log('published');
    }
});

但是:你不应该使用那些回调,不允许激励股票,如果他愿意,用户应该能够更频繁地分享。