「SNS Count Cache」v0.10.0におけるFacebook取得の不具合を解決する

ここのところFacebookのカウント数が取得できなくなってしまい、悩めるユーザーが激増中の「SNS Count Cache」。
先日、その解消方法を記事にした後に、新たなバージョン0.10.0がリリースされたわけですが、そちらにアップデート後も相変わらずカウント数が取得できない状況が続いています。ということで、今回はバージョン0.10.0での解決法についてです。

SNS Count Cache 0.10.0 Bug Fixes!!

バージョン0.9.3以前のものについては、以前提示した解決方法で無事Facebookのカウント数が取得されるようになるのですが、2016年10月13日現在の最新バージョン0.10.0は、ファイルの中身が書き換わっており、0.9.3以前の解決法が適用できません。

というのも、バージョン0.10.0になってから、前回の解決法でも紹介したAccesstokenを取得するために、App IDとApp Secretをプラグイン設定で保存できるようになったため。

SNS Count Cache 0.10.0 設定画面

本来ならば、設定の更新がされることでAccesstokenが付与され、問題なくカウント数が取得されるわけですが、なぜか設定の更新をクリックしても、その設定が保存されず、いつまでも設定画面上に「パラメータを設定して」メッセージが表示され続けます

はぁぁぁぁぁぁぁぁ?!!! となる人続出ですよねぇ、コレ。。
何回設定更新しても、いつまでも同じメッセージが表示され続け、かと言って自力で解決しようにも、どのファイルのどこをいじればいいのかわからない人も多いでしょうし、「詰んだ・・・」と項垂れる人もたくさんいらっしゃるのではないでしょうか。

僕もアップデートしてまた表示されなくなって設定を変更したりしたわけですけど、やはり表示されず「ぐぬぬ」となっていたわけですが、ちょうど仕事も忙しかったので放置していました。そのうちアプデ来るだろうなぁという思いもあったんですけどね。

で、やっと落ち着いてきたわけですが、これがまた一向にアップデートがされないわけです。いや、作者の人もお仕事してるでしょうし、何もこれに掛かりきりになれとは言えませんけど、さすがに明確なバグなんだからどうにかしたほうがいいんじゃないかなぁと思いますよ。ちょっと放置しすぎ。

そんなわけで、僕の手が少し空いたこともあり、ファイルをダーッと確認。
原因を特定して解決したので、その方法をシェアしたいと思います。

SNS Count Cache 0.10.0 修正方法

まず原因について。
シェア数を取得するあたりに原因が? と思ってしまうところですが、上述したようにApp IDとApp Secretの設定・保存がうまくいません。つまり、ここがうまいこと繋ぎこみできればいいということです。

そこで、SNS Count Cacheの中核となるファイルsns-count-cache.phpをチェックしてみました。すると案の定「おや?」という箇所があるじゃないですか。

それをペロッと書き換えて、設定画面に再度アクセスしてみると、はい無事解決。
ちゃんと取得されるようになりました。

「おや?」というのはファイルの1239〜1240行目。

“Share”に関連するところなのに、記述上followが使われているのです。
そこで1244行目の記述に倣い、followをshareに書き換えます。

はい。これで無事解決です。あとはSNS Count Cacheの設定画面へ進み、エラーメッセージの表示がなくなっているかを確認してみてください。
これで問題なくなっていれば、あとは勝手にクロールされてFacebookのカウント数が取得されていきます。もちろん手動で取得してもOK。

コードを見る限りは作者側の凡ミスでしょうね。
以前のバージョンからFacebookページのLike数を取得できるようにしてあったので、そこのコードを流用したんじゃないかと推測しています。

これまた正式な対応版が出るまでの暫定対応には違いないですが、他に大きな問題点も見当たりませんし、おそらく正式対応版も同様の修正を施してくるのではないかと思います。ということで、取得できなくて泣きそうだった人は参考にしてみてください。