2021/09/25
8月頃からSNS Count CacheでFacebookのシェア数が表示されなくなりました。
設定画面からシェア数を表示してみると、Facebookの欄だけN/Aになっています。
いろいろ調べてみたら、どうやらシェア数を取得するのに非公式のAPIエンドポイントを使っていたんだとか。
今回、Facebookの仕様変更でそれが使用不可になってしまったのが原因のようでした。
バージョン0.9.2でFacebook公式APIに変更されてはいるのですが、認証キーがないと制限がかかるんだとか。
現在のSNS Count Cacheでは、そのような設定はできませんので、ファイルを変更する必要があります。
※自分用にメモしておくために書いてますので詳細はリンク先等を確認するようにしてください
sponsored link
Facebook アプリIDの取得
認証キーはFacebookのアプリIDを取得していれば、すぐに使用可能です。
OGP設定とかで取得している人は簡単です。
アプリID取得のための参考サイト
SNS Count Cache 変更か所
参考サイト
sns-count-cache/includes/class-share-facebook-strategy.phpを変更します。
35行目 変更前 const DEF_BASE_URL = 'https://graph.facebook.com/'; 変更後 const DEF_BASE_URL = 'https://graph.facebook.com/?access_token=appid|appsecret';
?access_token=appid|appsecretを追加します。appidとappsecretはFacebook Developersで確認して、自分のものに変更してください。
79行目 変更前 $url = self::DEF_BASE_URL . '?' . http_build_query( $this->query_parameters , '' , '&' ); 変更後 $url = self::DEF_BASE_URL . '&' . http_build_query( $this->query_parameters , '' , '&' );
DEF_BASE_URLの後の?を&に変更します。
上記2か所を変更したら保存して完了です。
あとは時間経過でシェア数を取得してくれるようになります。
SNS Count Cacheのアップデートがあると、変更したファイルは上書きされますので、公式に対応されるまでは再度変更しなければいけない可能性があります。
また、アップデート後のファイルが、上記の変更でも動かない可能性もありますので、自己責任でお願いします。
SNS Count Cache 作者さんのページ
< 2016.10.11 追記 >
0.10.0が公開され、設定でエラーが出ていましたが、解決方法が分かりました。