Facebook Open Graph获得共享 - 重新加载缓存问题

时间:2016-12-27 14:51:56

标签: javascript jquery facebook facebook-javascript-sdk facebook-opengraph

我用Facebook Open Graph Shares实现了一个共享计数器,代码如下:

        <script>
          function GetShareTargetCMS(){
            var token = 'XXXXXXXXXXXXXXX|YYYYYYYYYYYYYYYYYYYY';
             $.ajax({
               url: 'https://graph.facebook.com/',
                 dataType: 'jsonp',
                 type: 'POST',
                 cache: false,
                 data: {access_token: token, id: "http://url-to-share", scrape:true  },
                 success: function(data){
                   console.log(data.share);
                     if(typeof data.share != 'undefined'){
                       $('.results_share').empty().html('<span>'+data.share.share_count+'</span>');
                     }else{
                       $('.results_share').empty().html('<span>0</span>');
                     }//else
                 }//success
             });
          }//GetShareTargetCMS
          //Get Condivisioni
          $(document).ready(function() {
              GetShareTargetCMS();
           });
           //Get Condivisioni


    //Share trigger dialog
    document.getElementById('shareBtn').onclick = function() {
              FB.ui({
                method: 'share',
                mobile_iframe: true,
                href: "http://url-to-share",
              }, function(response){ GetShareTargetCMS(); });
            }

</script>

默认情况下,文档就绪中调用的函数会在潜水中打印当前页面的共享计数器。如果用户单击.shareBtn,则打开共享对话框。当共享成功时,我重新调用共享功能来重新加载和更新共享计数。我不知道原因,但柜台不爽。刷新计数器的唯一方法是重新加载页面。有什么建议?

我试过了:

  • 使用GET代替POST
  • 试图在数据参数中省略“scrape:true”。
  • 在没有功能的情况下“直接”使用代码

1 个答案:

答案 0 :(得分:0)

尝试在刷新共享计数之前设置超时

document.getElementById('shareBtn').onclick = function() {
          FB.ui({
            method: 'share',
            mobile_iframe: true,
            href: "http://url-to-share",
      }, function(){setTimeout(function(){GetShareTargetCMS()},1000) });
}