【WordPress】プラグイン「SNS Count Cache」がver0.10.0にアップデート!

こんにちは。ちゃぼP(@chabo0429)です。

この風の羅針盤では、各種SNSのフォロワー数や、シェア数をカウントして表示しているわけですが、その全てはまるぼんさん制作の「SNS Count Cache」に絶賛依存しております。

直近では、Facebookのシェアカウントがいきなり無効になった事件がございましたねえ(汗)

SNS Count CacheでFacebookシェアがカウントされなくなった時の対処方

この時の原因はと言うと、シェア数取得の非公式エンドポイントAPIが廃止されたために発生した現象だったわけですけれども、これまでなんとか色々と回避策をとって、取得を行っていました。

この度、「SNS Count Cache」がVer0.10.0にアップデートされ、この不具合に正式に修正が加えられましたので、早速アップデートいたしました。

[試] WordPressプラグイン SNS Count Cache (Ver. 0.10.0)リリース | Pinterestシェア数対応、Facebookシェア数取得安定化等

SNS Count Cache Ver0.10.0からは、新たに「Pinterest」に対応

本バージョンから、新たに「Pinterest」シェアに対応したようです。

インストール後の設定画面でチェックを入れるだけで、シェアカウントが有効になるようです。

sns_count01001

ちなみに、シェア数は以下の関数で呼び出すことが可能です。

scc_get_share_pinterest()

Facebookカウント取得不具合正式対応!

そして、コレ。待ちに待った、というところですね。

Facebook公式のAPIは、「APP ID」と「APP Secret」を使用してカウントを取得しないとエラーになる確率が高く、これでなかなか取得がうまくいかなかったのですが、本バージョンからは「APP ID」と「APP Secret」を設定することが出来るようになりました。

sns_count01002

SNS Count Cacheの設定画面から、自分のFacebookページの「APP ID」と「APP Secret」を入力します。

Facebookアプリは以下から作成することができますよ!

https://developers.facebook.com/

試しに取得してみる!

さて、プラグインの設定を行って数分後。うまく取得できるでしょうか・・・?

 

 

 

 

 

sns_count01003

うまくいったーーー!

ヤッタネ!

「N/A」になっていくつか取得がうまくいかないページがあるみたいですが、まあ、気にしない(笑)

コレで安定してシェア数をカウントしてくれるでしょう。作者のまるぼんさんに感謝ですね!

SNS Count CacheのFacebookシェアがうまく動いてくれないので、別のWordPressプラグインを入れてみた!

こんにちは。ちゃぼP(@chabo0429)です。

先日、WordPress用プラグイン「SNS Count Cache」が突然の非公式APIエンドポイントの閉鎖に伴い、Facebookのシェアカウントが取得できなる現象が発生しました。

そのため、Ver 0.9.2の改造及びVer 0.9.3 Betaの導入でなんとかFacebookのシェアカウントをふっかつさせてみたという記事を書いたのですが、

Ver 0.9.2のカスタマイズ記事

SNS Count CacheでFacebookシェアがカウントされなくなった時の対処方

Ver 0.9.3 Betaの導入

SNS Count Cache v0.9.2でFacebookシェアカウント取得ができないのでbeta版をテスト中!

今現在、SNS Count Cacheのシェアカウントがどういう状況になっているかといいますと・・・

Step_by_Step01

残念ながら、やはりFacebookのカウントは取れないまま。。

最初はうまく行っていたんですが、しばらく経つとどうしてもカウント数を取得できなくなります。

「SNS Count Cache」でFacebookシェアカウント数が取れなくなる原因は、コール上限に達してしまうからというのが理由

なぜこういうことになるのかというと、今回から利用することにした公式のAPIエンドポイント「http;//graph.facebook.com」というAPIは、過大な負荷を避けるために、一定時間ごとのコール数(カウント取得のためのリクエスト)を制限しているから、というのが理由です。

それを回避するためには、「アクセストークン」という認証キーを使うことで、認証済みのアプリからのリクエストであることを都度申告をすれば、「600秒に600回」まではリクエストを受け付けるという仕様になっているとのこと。

ところが、「SNS Count Cache」はこのアクセストークンを使ったリクエストに対応していないため、あっという間にリミット上限に達して取得が不可になるということになったわけです。

この現象を回避すべく、この「アクセストークン」を使って取得できないか調べてみた

最初はSNS Count Cacheにこのトークンを実装できないかを調べてみましたが、あえなく挫折。そこで、別のプラグインを探してみたところ、ありました。アクセストークンに対応したシェアカウント取得用のキャッシュプラグインが!

それがこちら。

SNSのカウントをキャッシュするWordPressのプラグインを作成しました

「Step by Step Social Count Cache」というプラグインです。これを探し当てた時は半信半疑でしたが、実装はとっても簡単で動作も軽いので、速攻このブログでは実装してしまいました。

インストールはWordPress公式から

インストールは通常の管理画面の「プラグインの追加」から行います。

Step_by_Step02

「Step by Step Social Count Cache」で検索すれば出てきます。検索に出てきたら、「今すぐインストール」→「有効化」をクリックして有効化します。

 

Step_by_Step03

「設定」→「Step by Step Social Count Cache」を選択します。

 

Step_by_Step04

最初に、Facebookのアクセストークンを入力します。アクセストークンの入手方法については、Facebookにログインした状態で、Facebookデベロッパーサイトにアクセスします。

https://developers.facebook.com/

アプリが追加されていれば、アプリIDなどが表示される画面が出てくるはずです。

Step_by_Step07

「ツール&サポート」をクリックします。

 

Step_by_Step08

「Access Token Tool」をクリックします。

 

Step_by_Step09

画面最下部に「App Token」をコピーして、「Step by Step Social Count Cache」の「App Token」に入力すればOKです。

※このアクセストークンの取得は、最初に取得するためにはちょっと面倒な作業をしなければならないので、この部分については、後日記事にしてご紹介する予定です。

 

Step_by_Step05

カウントキャッシュをするSNSと、取得間隔を設定します。基本的にデフォルトのままでいいと思います。

実際に取得できているか、ページに表示させてみた

設定は実はコレだけ。これですぐに取得を始めてくれます。

ただ、SNS Count Cacheのようにダッシュボード機能は実装されていないんので、実際の表示ページに関数を入れて、表示させてみるしかありません。

「Step by Step Social Count Cache」では、各SNSごとにそのカウント数を個別に表示する関数及び合計を表示する関数が定義されているので、それを「single.php」の表示させたいところに記述すれば、表示されるはずです。

試しに、「single.php」の上部にあるカウントの部分を以下のように書き換えてみました。

<!--
		<?php if(function_exists('scc_get_share_total')) echo scc_get_share_total(); ?>
-->
		<?php
		$socal_count = sbs_get_all();
		echo $socal_count["all"]; // 全てのSNSの合計を返す
		echo $socal_count["twitter"];
		echo $socal_count["facebook"];
		echo $socal_count["google"];
		echo $socal_count["hatena"];
		echo $socal_count["pocket"];
		echo $socal_count["feedly"];
		?>

1〜3行目は今までのSNS Count Cache用の関数なので、コメントアウトし、その下に「Step by Step Social Count Cache」用の関数を書き加えました。この状態で、先日のバンガードのカメラバッグの記事を表示させてみると・・・

 

Step_by_Step06

なんかとんてもない数が表示されていますが、これは※の部分がシェアカウントの合計。その右側の①がTwitter、②がFacebook、③がGoogle+、④がはてなブックマーク、⑤がPocket、⑥がFeedlyです。つまり、①〜⑤までの合計は※に表示されています。

ちゃんとすべてのSNSシェアカウントが取得できていますね!

あとは、合計のカウントだけを表示させたいのであれば

echo $socal_count["all"];

以外を削除すればいいですし、逆に個別に表示させたいのであれば、それぞれの関数を適宜記述するだけです。

ちなみにこのプラグインには標準でバルーン表示やスクエア表示などのデザインテンプレートが用意されていて、簡単に綺麗なシェアカウントを表示することも出来ます。

さいごに。

「SNS Count Cache」はとても優れたプラグインですが、Facebookのシェアカウント取得に関しては、APIの仕様が変わることがない限り、ちょっと運用だけではトラブルの回避は現状難しそうな気がしています。

アクセストークンを実装できれば、元に戻したいと思いますが・・・

ちなみに、フォロワー数の取得に関しては、引き続きSNS Count Cacheを使用しますので、当面は二重の運用です。

ただ、「Step by Step Social Count Cache」は今のところ非常に安定して動いているので、しばらくはこちらを使うことになりそうです。

ぜひ同じ悩みを抱えている方は、お試しくださいね!

SNS Count Cache v0.9.2でFacebookシェアカウント取得ができないのでbeta版をテスト中!

こんにちは。ちゃぼP(@chabo0429)です。

当ブログでも導入しているWordPress用プラグイン「SNS Count Cache」ですが、先日Facebookシェアカウント用APIエンドポイントが廃止になった影響で、カウント数が取得できなくなりました。

SNS Count CacheでFacebookシェアがカウントされなくなった時の対処方

そこで、自分なりに公式のAPIからシェア数を取得できるようにプラグインファイルを改造したので、記事にしておりました。

その後数時間後に修正版のv0.9.2がリリース。作者のまるぼんさんにも同様の問い合わせが入っていたようで、修正されたようですね。

私も公開された公式のアップデートを導入して、「メデタシメデタシ」という感じだったのですが、しばらくすると、再びカウント取得が行えない状態に・・・

SNS_Count_Cache01

実は、これには原因がちゃんとありました。

公式APIエンドポイントは一定時間内に何度も問合せを行うと、しばらくは取得ができない仕様

実は、今まで「SNS Count Cache」は非公式のAPIエンドポイントを使っていたため、あまり意識をすることはなかったのですが、今回から採用となったFacebook公式APIエンドポイントに関して、一定時間における制限回数が設けられているようです。

8月23日現在、「SNS Count Cache」の作者のまるぼんさんのサイトで、この制限に対策された「v0.9.3」がBeta版として公開されています。

[試] WordPressプラグイン SNS Count Cache(Ver. 0.9.3 beta)の臨時公開

公式APIで一定時間内の問合せ回数に制限がある以上、その制限内での運用を行うしかないわけですが、まるぼんさんのサイトによりますと、コレを回避するために今回公開されたBeta版では以下の対策が施されているようです。

  • カウント取得失敗時のリトライ処理の削減
  • 動的キャッシュ機能(ユーザのアクセスをトリガとした動的キャッシュ)のデフォルト無効化
  • 臨時キャッシュ機能のシェア数のチェック間隔の変更(300秒→600秒)

また、運用に於けるリスク軽減策として、以下の方法も推奨されています。

  • [設定]→[シェア基本キャッシュ機能]→[シェア数のチェック間隔(秒)]の値を増やす(チェック間隔をひろげる)
  • [設定]→[シェア基本キャッシュ機能]→[一度にチェックするコンテンツ数]の値を減らす
  • HTTPからHTTPSへのスキーム移行モードを有効にしている場合は、[設定]→[シェア基本キャッシュ機能]→[HTTPからHTTPSへのスキーム移行日]を設定する

ということで、早速Beta版をインストールしてみることにしました。

「V0.9.3 Beta」はWordPress公式からはまだダウンロード出来ないので注意!

V0.9.3 Betaは現在のところ、まだテスト運用中とのことなので、WordPress公式サイトからはダウンロードできません。ダウンロードする際は、まるぼんさんのサイトからzipファイルをダウンロードし、解凍した上でFTPツールを使って「SNS Count Cache」フォルダ以下をすべて上書きします。

上書き後に、「インストール済みプラグイン」の画面で、

SNS_Count_Cache05

のように、「バージョン0.9.3 beta」と表示されていれば正常に完了しています。

念のため、チェック間隔を1800秒に変更しておく

今回新たに実装された、「動的キャッシュを無効化」する機能や、エラー発生時のリトライを抑制する機能がデフォルトで効いているので、インストールするだけである程度制限に達するリスクは回避されているのだと思いますが、サイトで推奨されている通り、念のためチェック間隔を広げておきます。

SNS_Count_Cache04

「設定」ページの「シェア基本キャッシュ機能」のチェック間隔は、デフォルトだと600秒(10分)ですが、1800秒(30分)に変更しておきました。

最初の取得が一巡するまではちょっと時間がかかるとは思いますが、一回これで様子を見たいと思います。

今のところ、少しずつシェア数をカウント中!

キャッシュする間隔が30分ですので、ちょっと時間がかかりますが、今のところ少しずつ順調に取得が再開されています。

SNS_Count_Cache02

コレでうまくいくといいですね!

「SNS Count Cache」は、簡単にシェア数を関数で呼び出せるので非常に重宝しているんですよね。単一ページなどにカウント数の表示したい場合にとても便利です。

今後も末永く使っていきたいプラグインです。作者のまるぼんさんに感謝デス!

SNS Count CacheでFacebookシェアがカウントされなくなった時の対処方

※この記事は、SNS Count Cache Ver0.9.1までのバージョン向けです。現在は0.9.2がリリースされています。また、リクエスト数制限に対策されたVer0.9.3 betaも作者様のサイトで公開中です。詳細は以下をごらんください。

SNS Count Cache v0.9.2でFacebookシェアカウント取得ができないのでbeta版をテスト中!

こんにちは。ちゃぼP(@chabo0429)です。

ここ数日、なんかシェア数が少ないな・・と思い、プラグイン「SNS Count Cache」の管理画面を開いてみました。

SNS_Count_Cache01

ナント、Facebookのシェアカウントが無効になっていました。

これはイカンばいと言うことで、色々と解決策を探っていたところ、直接コードをfunction.phpとかに書いて、直接Facebookのシェアカウントを取得してしまう方法はいくつか見つけることが出来ました。

Facebookのシェアカウント数は、ブラウザから、

http://graph.facebook.com?id=http://www.omoide-soko.jp/apps/wordpress

とリクエストすることで、簡単に取得できます。

SNS_Count_Cache04

ですが、このブログでは他にもTwitterやらPocketやらを「SNS Count Cache」でシェア数をカウントしているので、なんとか「SNS Count Cache」で取得できるようにしたいところ。そこで、なんとか「SNS Count Cache」を修正してカウントが復活するようにしてみました。

プラグイン「SNS Count Cache」の「class-share-facebook-strategy.php」を編集

まず、WordPress管理画面のプラグイン一覧の画面を開きます。

SNS_Count_Cache02

「SNS Count Cache」の「編集」ボタンから、プラグインの編集画面に入ります。

 

SNS_Count_Cache05

右側に、プラグインで使用するphpファイルが表示されるので、その中から「class-share-facebook-strategy.php」をクリックします。

まず、80行目付近にある「public function build_query_url()」の1行を以下のようにコメントアウトします。

編集前

	public function build_query_url() {
		Common_Util::log( '[' . __METHOD__ . '] (line='. __LINE__ . ')' );

		$url = self::DEF_BASE_URL . '?' . http_build_query( $this->query_parameters , '' , '&' );

		return $url;
	}

編集後

	public function build_query_url() {
		Common_Util::log( '[' . __METHOD__ . '] (line='. __LINE__ . ')' );
/*
		$url = self::DEF_BASE_URL . '?' . http_build_query( $this->query_parameters , '' , '&' );
*/
		return $url;
	}

「url」の表示がある部分をコメントアウトすればOKです。

 

次に、90行目付近の「public function extract_count( $content )」を以下のように書き換えます。

編集前

	public function extract_count( $content ) {
		Common_Util::log( '[' . __METHOD__ . '] (line='. __LINE__ . ')' );

		$count = (int) -1;

		if ( isset( $content['data'] ) && empty( $content['error'] ) ) {
			$json = json_decode( $content['data'], true );

			if ( isset( $json[0]['total_count'] ) && is_numeric( $json[0]['total_count'] ) ) {
				$count = (int) $json[0]['total_count'];
			} else {
				$count = (int) -1;
			}
		} else {
			$count = (int) -1;
		}

		return $count;
	}

編集後

	public function extract_count( $content ) {
		Common_Util::log( '[' . __METHOD__ . '] (line='. __LINE__ . ')' );

		$count = (int) -1;
		$url = $this->query_parameters['urls'];
		$encoded_url = rawurlencode( $url );

		$response = wp_remote_get( 'http://graph.facebook.com/?id='.$encoded_url );
		$count = 0;

		if (!is_wp_error( $response ) && $response["response"]["code"] === 200) {
			$body = $response['body'];
			$json = json_decode( $body );
			$count = ($json->{'share'}->{'share_count'} ? $json->{'share'}->{'share_count'} : 0);
		}

		return $count;
	}

これでOKです。

あとは、「SNS Count Cache」の管理画面に戻り、再度キャッシュして動作確認を行います。

SNS_Count_Cache03

順調にシェアカウントをキャッシュしてくれているみたいです。

原因は「https://api.facebook.com/method/links.getStats」が使えなくなったことによる

今回、シェアカウントが取得できなくなった原因は、カウント数取得用のAPI「https://api.facebook.com/method/links.getStats」が使えなくなったことのようです。

そこで、今回は回避策として公式のAPIである、「http://graph.facebook.com/」を使ってカウント数を取得することにしましたが、今後「SNS Count Cache」がアップデートされたら、この辺は仕様が変わるかもしれません。

それまでのツナギという形になると思いますが、「SNS Count Cache」を使っている方は参考にしてみてください!

【WordPress】SNS Count Cacheが0.9.1にアップデート!フォロワー数取得不具合に対応

こんにちは。ちゃぼP(@chabo0429)です。

先日、新しくリリースされたWordPressプラグイン「SNS Count Cache」がバージョンアップされたっところ、フォロワー数を取得する間隔を設定しても、正常に取得されないという件について、記事を書きました。

SNS Count Cache 時間通りにフォロワー数を取得しないことがある

そして、つい先ほどですが、バージョンアップされた新しい「Ver0.9.1」がリリースされたようです!

すでに13日0時現在、アップデートが可能になっています。

リリースノートには、

0.9.1

Fixed: Follower count is not retrieved and cached at intervals according to your configuration.

とありますので、設定されたインターバルで正常に取得を行ってくれると思います。

SNS Count Cacheを導入して、フォロワー数の取得を行っている方は、早速アップデートしてみましょう!

SNS Count Cacheは、各SNSのシェア数、フォロワー数を簡単に表示できるプラグイン

SNS Count Cacheは、各SNSのシェア数、TwitterやFeedly、Push7などのフォロワー数は関数を埋め込むことで簡単に表示することができる、デザインの自由度が高い、極めて有用なプラグインです。

純正標準のアイコンやフォローボタンに飽きてしまった方は、自分でデザインされることもオススメですよ!

当ブログで作成いたしました、フォロワー数の表示ボックスの設置については、以下のページ解説しておりますので、ご参考にどうぞ!

【WordPress】記事下にTwitter,Feedly,Push7のフォローボタンを設置する方法

SNS Count Cache 時間通りにフォロワー数を取得しないことがある

こんにちは。ちゃぼP(@chabo0429)です。

先日、WordPress用プラグイン、「SNS Count Cache」のバージョンアップについての記事を書きましたが、

【WordPress】SNS Count Cacheが0.9.0へバージョンアップ!新たにPush7などへ対応

新しく実装されたTwitterやPush7のフォロワー数取得の関数を使って、フォローボタンを作りました。

【WordPress】記事下にTwitter,Feedly,Push7のフォローボタンを設置する方法

さて設定に指定間隔ごとにデータ収集を行うかと思いきや、ここで問題が発生しました。

フォロー数を設定時間ごとに収集しないことがある場合は、気長に待とう

ちゃぼPのところでは、フォロワー数を取得する間隔を秒で設定しても、いっこうに取得されない現象が確認されました。

いろいろと設定を確認したのですが、どこもおかしなところはなさそうだったので、このプラグインの作者まるぼんさん(@marubon_jp)に問い合わせてみたところ、同じような問い合わせを他からも受けているということで、しばらく時間がかかりそうとのことでした。

作者のまるぼんさんの報告を待ちたいと思います。

 

同様の現象が発生している方は、今はおとなしく待ってみましょう!

【WordPress】記事下のSNSフォローボックスを見やすくしてみました

どうもこんにちは。ちゃぼP(@chabo0429)です。

先日、WordPressのプラグイン「SNS Count Cache」がバージョンアップしたという記事を書いたのですが、

【WordPress】SNS Count Cacheが0.9.0へバージョンアップ!新たにPush7などへ対応

このバージョンアップによって、TwitterやPush7のフォロワー数をキャッシュしてカウントを取れる仕組みになりました。

そこで、この風の羅針盤の記事ページの下の部分のフォローボックスの見栄えをちょっと良くしてみることにしました。

公式のフォローボタンをやめて、アイコンフォントでフォローボタンを作ってみた

ブログをやっていらっしゃらない方は、あまり興味をそそられないと思いますが・・(^^;)

一応ね。もうちょっとオリジナリティーを出してみようということで、トライしてみたところ、いい感じで仕上げられたと思っています。

①PC表示のボックス

まず、今までのボックス。こんな感じでした。

SNS_Follow_box01

これもスッキリ綺麗でしたが、Twitterはフォロワーの数が出ていないし、ボタンの大きさもバラバラ。

まあ、用は事足りるんですが、イマイチデザインが私の美的センスを刺激してしまうものでございました。

そこで、これをこのようにしてみました。

SNS_Follow_box02

はい、ドーン(笑)

それぞれのオフィシャルカラーのボックスに全て白抜きの文字で、アイコンの右側にフォロー数を表示。

かなり美しくないっすか?(笑)

うん、いい感じだ!(ちゃぼP、悦に入るその1)

②モバイル表示のボックス

続いて、モバイル表示。

SNS_Follow_box03

このように、モバイルの場合は表示領域が狭いので、TwitterとFeedlyで一列、その下にPush7がもう一列あります。

これを新しいデザインで作ってみると・・・

SNS_Follow_box04

はいどうよ、これ!!

すげーイイじゃん!イカすじゃん!(死語)

横長の公式フォローボタンがなくなったので、横幅に余裕が出来、2列に分ける必要がなくなりました。

スッキリしていて綺麗でしょ??

うん、こりゃーイイ!我ながらよくできた。やったぜー!(ちゃぼP、悦に入るその2)

さいごに

というか、アイコンフォントとか、よくわかんなかったので、調べながらの作業でしたので、時間がかかりましたが、これでめでたく綺麗なデザインにできました。

部長に明日教えてあげよう(笑)

欲しがるかな?

部長の常連さん、どう思います?(笑)

要らないって言うかなー。

もし需要があるようなら、導入方法を記事にしたいと思います。もしよろしければコメントくださいね〜

【WordPress】SNS Count Cacheが0.9.0へバージョンアップ!新たにPush7などへ対応

このサイトでも、一生懸命にSNSからシェア数の収集を行ってくれているプラグイン、「SNS Count Cache」ですが、久々のアップデートとなったようです。

[試] WordPressプラグイン SNS Count Cache (Ver. 0.9.0)リリース | Twitterシェア数、Push7フォロワー数対応等

早速インストールしてみたところ、幾つか項目が増えていました。

Twitterの新しいAPIに対応!

TwitterのシェアカウントAPIが停止されてから、風の羅針盤でも代替APIへ切り替えてシェア数をカウントしていました。

【WordPress】Twitterカウント復活!代替APIがあったよ!

この度SNS Count Cacheでもこの代替APIに正式に対応したようです。

SNS_Count_Cache02

ちなみに、提供元APIが不安定な時の対応も考えられており、計三つのAPIがデフォルトで登録されています。

それぞれのサービス先での事前の登録が必要になると思いますが、うまくシェア数がカウントできない場合は、切り替えてみるといいかもしれません。

Push7正式対応!

風の羅針盤でも導入しているPush7。これはリアルタイムで更新を通知してくれるサービスです。

リアルタイム更新通知「Push7」の導入方法を解説します

今回のアップデートで、SNS Count CacheでもこのPush7に正式対応

Push7を有効化して、Push7のダッシュボードにある「AppNO」を登録すると、シェア数がカウントできます。

SNS_Count_Cache03

まず最初に、有効化するサービスにチェック。

 

SNS_Count_Cache04

Push7を既に使っているなら、Push7のダッシュボードから、AppNOをコピーするだけでOK。

とても簡単です。

SNS Count Cacheのダッシュボードで、フォロワー数が一覧表示できるように

これまで、Feedlyのフォロワー数は、管理画面に出てきませんでしたが、今回からWordPress管理画面に表示されるようになりました。

SNS_Count_Cache01

こんな感じで、一目でフォロワー数がWordPressの管理画面で確認できてとても便利ですよ!

この数値が簡単に取得できることで、サイト上のいろいろな部分に簡単にシェア数やフォロー数を表示することが可能になります。これはサイトデザインの上でもかなーり便利!

この機会に、早めにアップデートしてしまいましょう!