読者です 読者をやめる 読者になる 読者になる

Newish One Day

毎日が新しい日。この気付きが人生を快適に過ごす秘訣だけれど、なかなかどうして辿り着けない。

【仕様変更】ブログのFacebookシェアボタンのカウント数が取得出来ない

 

Facebookシェアボタンのカウント数が0に

大した記事を書いているわけではありませんが、記事によってはちらほらシェアして頂いているものがあります。
今朝、何気なくそのような自身の記事を眺めていた所、Facebookのシェア数が0に。


私はこちらのシェアボタンを利用しております。

www.yukihy.com
人気のあるブログ等でこちらのボタンを導入していると、他SNS等の数が多いのに、Facebookだけが0という状態になってしまいます。
FacebookのAPI利用している人は、恐らく皆さん取得出来ていないのではないでしょうか。

ご心配なく。
データが消えたとかというわけではなく、データの格納先が変わっているようです。

Facebookシェア数の呼び出し元確認

カウント数データの呼び出し元である下記URLに、適当にシェアされている自身の記事のURLをつけて確認。
https://graph.facebook.com/

ちゃんと、カウントは入っています。

f:id:seconddiary:20160819085806p:plain

修正内容

修正前

このボタンを利用している方も多くいるかと思いますので、参考までに、私のコードとシェアボタン作成者ご本人様のコードを載せますが、データの格納先が変わっているだけなので、直す箇所はどのシェアボタンを使っている方も同じです。

 

//Facebookのシェア数
function getFacebookCount(entryUrl, selcter) {
  entryUrl = 'https://graph.facebook.com/' + encodeURIComponent(entryUrl)
  $.ajax({
    url:entryUrl,
    dataType:'jsonp'
  }).then(
    function(result){ $(selcter).text(result.shares || 0); },  function(){ $(selcter).text('0'); }  ); }

ご本人様のコード

//Facebookのシェア数を取得
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.shares || 0 );
    },
    error:function(){
      jQuery( selcter ).text('0');
    }
  });
}

とまあ、二つ載せましたが、注目すべきは、赤字にした「shares」の箇所。
https://graph.facebook.com/

こちらで吐き出されるデータの中に「shares」がありません。

修正後

修正箇所だけ記載します。

.shares

.share.share_count

 

以上です。
こちらでカウント数が戻ります。
勿論、元々ない方には戻りませんが。。。
というより、元々ないとそもそもこの事態に気付くことがないかもしれません。

シェア自体はそのまま継続できるのであまり緊急性は高くありませんが、あれと思いましたら、お試しを。


追記:さらっと直してこの記事書いてしまったのですが、これFacebookの仕様変更ですし、FacebookのAPI利用している所は全て影響ありますね。
タイトルと記事内容、若干変更しておきます。
少なくとも前述しているシェアの継続は出来ているので、0になっている間のシェア数も取れると思います。

Facebookを参考にJSONPを学ぶ -