こんにちは、つばさ(@tsubasa123)です。
最近、参考にさせていただいているブログでFacebookのシェアボタンのシェア数のカウント表示がずっとグルグルしている(エラーでカウントできていない)のを何件か見かけましたので対応方法を調査しました。お心当たりのある方、宜しければご確認ください。
JavaScriptをちょっと修正すれば直るはず
function get_social_count_facebook(url, selcter) { jQuery.ajax({ url:'https://graph.facebook.com/', dataType:'jsonp', data:{ id:url }, success:function(res){ jQuery( selcter ).text( res.share.share_count || 0 ); }, error:function(){ jQuery( selcter ).text('0'); } }); }
グルグルしちゃっている人はおそらくこんな感じのカスタマイズを導入されているんじゃないかなと。これを、
function get_social_count_facebook(url, selector) { $.ajax({ url:'https://graph.facebook.com/', dataType:'jsonp', data:{ id:url } }).done(function(res) { if (res.share && res.share.share_count) { $(selector).text(res.share.share_count); } else { $(selector).text(0); } }).fail(function() { $(selector).text(0); }); }
このように変更すれば直るはず。コピペで上書きしていただければ解消するはずですが、念のためバックアップはとってください。それと、get_social_count_facebook
の部分は適宜修正してください。
getFacebookCount('{Permalink}', '.facebook-count');
このような記述を行っている方は、get_social_count_facebook
の部分をgetFacebookCount
に変更してから上書きしてください。
0でも表示されている場合もある
こちらのサイトでもAPIの仕組みが紹介されていますが、シェア数が0のときと1以上の時で実行結果が異なるのがエラーの原因となっているようでした。
ですが、シェア数が0でもグルグルしていない方もいるんですよね。外部から実行しても問題なく動作しているようで、正確な動作がよくわかりませんでした。外部サービスの利用はこの辺が難しいところです。
さいごに
とりあえず、対処方法はわかったので満足です。好きなブログにはエラーがない状態でいてもらいたいものですから。あとはこれをどうやって伝えるかが問題だ。
ではでは、最後までお付き合いいただきありがとうございました。