気楽に生きよう!

うつ病、野球、エンタメ 色々喋るよ

常時SSL化して失われたFacebookの「いいね!」数を取り戻すことに成功したよ!!

f:id:nuruta:20170312013233j:plain

はじめに

閃いた(笑
出来ました。

ごめんなさい

以前、このような記事を上げました。
nuruta2.hatenablog.com
出来ませんという嘘八百な結論を出していた訳です。
お恥ずかしい。

別件でカスタマイズをしている時に、いいね数取得のコードを見ていて「あれ?これ簡単に出来るんじゃね?」と思いついたのです。
コードを弄ること、10分。
呆気なく出来ましたので、公開しますw

コード

//Facebookのシェア数
function getFacebookCount(entryUrl, selcter) {
  entryUrl = 'https://graph.facebook.com/' + encodeURIComponent(entryUrl)
  $.ajax({
    url:entryUrl,
    dataType:'jsonp'
  }).then(
    function(result){
        if(result.share && result.share.share_count) {
            var fb_count = parseInt($(selcter).text()) + parseInt(result.share.share_count);
            $(selcter).text(fb_count);
        }
    }
  );
}
$(function(){
  $('.facebook-count').text('0');
  getFacebookCount('{Permalink}', '【ここに表示させたいタグのid又はクラス名】');
  var plink = '{Permalink}';
  plink = plink.replace("https","http");
  getFacebookCount(plink, '【ここに表示させたいタグのid又はクラス名】');
});

解説

getFacebookCount()関数に引数を渡して、いいね数を取得しています。
この関数自体は他のブログさまで公開されているものに、僕が少し手を加えたものになります。
引数は
第1引数に記事のURL。
第2引数に「いいね数を表示させたいタグのIDまたはクラス名」

2度この関数を呼び出しています。
1度目で新url(httpsで始まる現行のURL)のいいね数を取得。
2度目で旧url(httpで始まる昔のURL)のいいね数を取得。
2つのいいね数を合算しています。

ご使用いただくために

上記コードの
【ここに表示させたいタグのid又はクラス名】
2か所を書き換える必要があります。

例えば、

<!--Facebook-->
<a href="~" ><span class="facebook-count">ココに入れたいよ</span><br><span>Facebook</span></a>

こんなタグが用意されていたら、クラス名が「.facebook-count」となってますので、

(省略)
  getFacebookCount('{Permalink}', '.facebook-count');
  var plink = '{Permalink}';
  plink = plink.replace("https","http");
  getFacebookCount(plink, '.facebook-count');
});
});

となります。

classなら頭に「.」(ドット)を付ける。
idなら頭に「#」(シャープ)を付ける。
このルールはCSSと同じです。


もしかしたら、他のコードと相性が悪くて、正常に動作しないかもしれません。
予め元コードのコピーを取った上、申し訳ありませんが自己責任でご使用願います。

終わりに

申し訳ありませんが、idコールさせてもらいます。
あにお (id:aniota-alvarado)さん。
間違った記事を上げてしまい、誠に申し訳ありませんでした。