どうも、NINO(@fatherlog)です。
このブログでは記事のSNSシェア数を表示させるのに「SNS Count Cashe」というプラグインを使用しています。
ところが、11月21日よりTwitterでのシェア数が突然表示されなくなりました。Facebook、google+、はてブ、Pocketは正常に取得できますが、Twitterのみ取得不可。
「なんでだよ!」って叫びました。こんな感じね。
見事にTwitterだけエラーが返されてます!
色々と原因を調べた結果、何とか解決することができたので再表示させる対処方法を記事にしたいと思います。
こちらの記事を参考にさせていただきました!
→【WordPress】ツイート数が取得できなくなったSNS Count Casheを「count.jsoon」で復活させる方法 – Creator Clip
photo credit: A Twitter Banner Draped Over The New York Stock Exchange For Twitter’s IPO via photopin (license)
そもそもなぜTwitterシェア数の取得ができなくなったか?
突然表示されなくなって驚いた方も多いのではないでしょうか。
Twitterのツイート数を取得する「count.json」と呼ばれるAPIは、元々非公式のものでした。
そのcount.jsonが今回Twitterボタンが新しくなったのを機に廃止されたようです。
Twitterの開発者向けフォーラムでも以下のようにアナウンスされています。
The Tweet button has displayed share count over the last five years by querying a JSON endpoint hosted on various domains. These private JSON endpoints have been used by third-party developers over the years to retrieve a simple share count of any URL. These endpoints will be shut down next month when the Tweet button removes its share count feature.
(A new design for Tweet and Follow buttons – TwitterDevelopersより引用)
内容を要約すると、
「ツイートボタンは過去5年間JSON endpointを使ってツイート数を取得し表示していました。そして、この非公式のJSON endpointを使ってサードパーティ開発者はツイート数を取得。来月からツイッターボタンが新しくなると同時に取得できなくなりますよー。」
というもの。
非公式だったので終了したと言われたらそれまでですね。「はい、終了ー。なんか文句ある?」的な・・・。
「count.jsoon」でTwitterシェア数を復活させる!
使えなくなったAPI「count.json」の代わりにTwitterシェア数を取得できるAPI「count.jsoon」を利用します。名前がとても似ていますが「o」が1個増えてます。
count.jsoonはdigitiminimi社が開発したサービスで、count.jsonの廃止により取得できなくなってしまったツイート数を再取得し表示させることができるんです!なんとも素晴らしいサービス!!ありがたや〜。
早速やってみましょう。
「count.jsoon」に登録
下記リンクからcount.jsoonにサイトURLとメールアドレスを登録します。
必要事項を入力し登録ボタンを押すと登録完了です。入力したメールアドレスに返信がくるまでしばらく待ちましょう!ぼくの場合、登録完了メールがきたのは12時間後くらいでした。結構待ちましたよ。
登録完了メールに書かれているリンクをクリックします。Twitter連携を登録したらシェア数の取得が開始されます。なお過去のツイート数取得にはかなり時間がかかる模様。
これで準備完了です!
SNS Count Casheのコードを書き換える!
シェア数を高速表示してくれるプラグイン「SNS Count Cashe」一部コードを書き換えます。
[aside type=”warning”]以下の作業はプラグインの構成ファイルを書き換えるので、作業前はバックアップをとっておくべきです。作業は自己責任でお願いします。[/aside]
プラグイン→インストール済みプラグイン一覧の中にあるSNS Count Casheの「編集」をクリック。
プラグイン編集画面になったら右側のプラグインファイルの中から「sns-count-cashe/includes/class-share-crawler.php」を探してクリック。編集画面を開きます。
155行目にあるコードを以下のように書き換えます。
・書き換え前
[php]’http://urls.api.twitter.com/1/urls/count.json?url=’ . $url;[/php]
・書き換え後
[php]’http://jsoon.digitiminimi.com/twitter/count.json?url=’ . $url;[/php]
書き換え後に「保存」をクリックし、完了です。
最後に、SNS Count Cashe→キャッシュ状況を表示して、再びキャッシュを開始させます。
しばらく時間が経ちキャッシュが終わるとTwitterのシェア数が元通りに復活しますよ!!
【以下、12/4追記】
僕の場合、count.jsoonに登録・Twitter連携してから過去記事全ツイートの回収に1週間ほどかかりました。
すぐには全部回収できないので、気長に待ってみてくださいね!
count.jsoonのサイトデザインもちょっと変わったようですが、「登録」と「連携」することは変わりないので試してみてくださいっ!
コメント
コメント一覧 (2件)
[…] ⇒SNS Count CasheでTwitterシェア数が取得できない時の対処方法(Satoruさんのブログ「FatherLog」より) […]
[…] 参照:SNS Count CasheでTwitterシェア数が取得できない時の対処方法 […]