ブログ関係

Feedlyの購読者数カウントボックスがゼロになる怪。原因を調査中

投稿日: / 更新日:

feedly

ブログをやっている人ならほとんどの方が RSS を配信しているでしょう。RSS は閲覧者がブログの更新情報を取得する事ができるので便利です。その RSS を見やすく加工してくれるツールが RSS リーダーというもので、有名なものは Feedly というツール(アプリ)です。上の図のような黄緑色のアイコンを一度は見たことがあるのではないでしょうか?

さて、当ブログでも RSS を Feedly に登録できるボタンを設置しています。下図のようなソーシャルボタン群はブログ記事の文末にはよく見かけるものです。

wpx-feedly2

Feedly のアイコンもありますが、Feedly の購読者数が数字で表示されています。今回これについて困った現象が発生しました。

Feedly購読者数カウントがゼロになる怪

ある日を堺に Feedly 購読者数のカウントボックスがゼロになってしまいました。PHP のエラーも発生するようになりました。

Warning: file_get_contents(http://cloud.feedly.com/v3/feeds/feed%2Fhttp%3A%2F%2Fwebmist.info%2Ffeed%2F): failed to open stream: HTTP request failed! HTTP/1.1
429 Too Many Requests

うーん、何やら開くのに失敗しましたとか言っているようです。「Too Many Requests」リクエスト多すぎ!というのもよくわかりません。ちなみに当ブログのサーバーでは PHP7.03 で動作しています。

wpx-feedly3

直で Feedly の登録画面へ行けばちゃんと購読者数が表示されています。こぞって購読を止めてしまわれたり、Feedly 側の問題ではないようです。

私だけの問題か?

私だけに起きている問題なのか、という事を確かめる為に他ブログの RSS や他サーバーのブログの RSS を読み込んでみても同じエラーが発生しました。

サーバーの問題か?

今までは Feedly の購読者数が表示されていて突然エラーが出るようになったので、サーバー側で何かしら仕様変更が行われたのではないかと推察できます。

【簡単】コピペで設置 Feedlyの購読者数のカウントボタンを作る

Feedly のカウントボックス付きボタンの設置には上のサイト様の記事を参考にしました。

Feedly の購読者数を取得するには PHP の file_get_contents 関数が使われているようです。どうもこの関数はセキュリティの為にサーバーによっては使えない場合があるそうです。しかし、今までは使えていたのですからおかしいものです。

Feedly購読者数を取得する代替策を試す

Feedly の購読者数付きのボタンを設置するには Feedly Insight という便利な WordPress プラグインがあります。これを導入してみたのですが、表示される購読者数はゼロ…。このプラグインも内部的には同様の処理を行っているため同じ結果になったのだと思います。

file_get_contents 関数の代替策として、curl 関数というものがあるそうです。

file_get_contentsが使えない時の対処方法

curl 関数を試してみましたが、結果は同じ。エラーメッセージは変わりましたが、結局の所内容は同じでした。

レンタルサーバー会社(wpX)に問合せてみた

当ブログは WordPress 専用サーバー wpX を使用しています。他の wpX サーバーを使用していると思われるブログを探してみましたが、やはり Feedly 購読者数ボタンはゼロだったり、エラーが表示されていたりしました。そこで、wpX に問合せてみました。

しかし、サポートセンターも頭の上に?を浮かべるような返答で「何を言っているんだこの人は。」というような感じでした。wpX で仕様変更が行われたわけでもなく、file_get_contents 関数が使えなくなったわけでもないようです。

wpx-feedly4

管理画面の php.ini 設定で allow_url_fopen が有効なら外部の URL を読み込める筈なのです。

確かにfile_get_contentsは使えるようだった

2016年4月2日追記
file_get_contents がサーバー側の仕様変更で使えなくなったわけではない事がわかりました。

file_get_contents に feedly の情報ではなく違うものを読み込んでみるとエラーは発生しませんでした。

<?php
$feed_url = rawurlencode( 'https://webmist.info/feed/' );
$subscribers = file_get_contents( "http://cloud.feedly.com/v3/feeds/feed%2F$feed_url" );
echo $subscribers; //試しに表示してみる
$subscribers = json_decode( $subscribers );
$subscribers = $subscribers->subscribers;
?>

つまり「http://cloud.feedly.com/v3/feeds/feed/feedのURL」で購読者情報を取得しようとする時だけ最初に紹介したエラーが発生しています。すなわち、Feedly の大元が外部から情報を取られる事を禁止したのではないかと考えられます。(あくまで推察です。)

もしそうだとすれば、ブログを運営している人にとってはどうしようもない問題です。Feedly の仕様変更ならニュースになる筈ですし、その他のブログでは購読者数が表示されている所もあるのも謎です。

2016年5月21日追記
Feedly 購読者数のカウントが従来の方法で表示されるようになっていました。どうやら、Feedly 側の不具合だったようです。

おわりに

進展があればまた報告します。無事 Feedly 購読者数が表示されるようになったので、この件は解決ということで。

-ブログ関係

Copyright© ウェブミスト(Webmist) , 2020 AllRights Reserved Powered by STINGER.