2015-03-23 5 views
-2

Я хочу поймать ответ, когда доля сделана на facebook, и в ответ ответит предупреждение. i сделал следующий скрипт Примечание: Этот вопрос уже задан, но еще не ответил. Click hereНет ответа Назад на FaceBook Sharing?

<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(), которую вызывается делением div facebook, а не только любой кнопкой.

Пожалуйста, помогите мне найти решение.

ответ

1

Диалог подачи устаревший afaik, вместо этого вы должны использовать share dialog. Эпидермальный намного проще в обращении и просто принимает открытые теги Graph из URL:

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

Это то, что я получаю в консоли, когда я отменить акцию:

Объект {error_code: 4201 , error_message: "Пользователь отменил Dialog поток"}

... и это то, что я получаю, когда я разделяю:

[]

Да, это пустой массив, и он попадет в предупреждение «Опубликовать не опубликованные». Идентификатор сообщения будет доступен только в том случае, если вы авторизуете пользователя с publish_actions, как вы можете прочитать в документах.

Это работает для меня:

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

НО: Вы не должны использовать эти обратные вызовы Имхо, акции стимулирования не допускается, и пользователь должен иметь возможность делиться чаще, если он хочет.

Смежные вопросы