Yahoo Pipes およびYQL経由でAjax による、Feedly の購読者数の取得が出来なくなったため、改修をおこないました。そのメモです。
これまで、以下のページにあるような方法で取得していたのですが、いつからか不明ですが、取得できないようになっていました。
先般、 Yahoo Pipes のほうで、Pipesの終了に向けてのアナウンスがありました。
とりあえず、このまま使っていても進展しないようなので、別の方法で取得するようにしました。
PHPによる取得
PHPの file_get_contents ファイルシステム関数を利用すれば、APIの返すソースを得ることができます。
基本的なものは以下のようなかんじに。
<?php
$url = "http://example.com/feed/"; // 対象URL
$json = @file_get_contents("http://cloud.feedly.com/v3/feeds/feed%2F".rawurlencode($url)); // データ取得
$feedId = json_decode($json, true); // JSONをデコードし配列へ
$count = isset($feedId['subscribers']) ? $feedId['subscribers'] : 0; // isset()で内容を調べ $count へ代入。登録されてないときは 0
print $count;
参考:
ウチのとこみたいに増減がほとんどないようなら、キャッシュいれたほうが、あちらのサーバーにはやさしいとおもいます(使ってるページ自体がアスセス少ないとか言わない)。
PEAR の Cache_Lite パッケージを用いた例です。
都合で、コメントに説明をいれています。
<?php
header("Content-Type: text/html; charset=UTF-8"); // text/plain でもいいような気もするけどとりあえず
// チェックURL
$url = "http://example.com/feed/"; // フィードURL
require_once "Cache/Lite.php"; // Cache_Lite 呼び出し
// キャッシュオプション
$cacheOptions = array(
'cacheDir' => '/var/www/tmp/cache/', // キャッシュディレクトリを指定。適切なパーミッションをセットしておく
'lifeTime' => '3600', // キャッシュ期限 (1時間)
);
// キャッシュID と キャッシュオブジェクト生成
$id = "feedlysubscribers";
$Cache_Lite = new Cache_Lite($cacheOptions);
// データ取得
if($count = $Cache_Lite->get($id)){ //
echo $count;
} else {
// キャッシュがないときに、フィード購読者数の取得にいく
$json = @file_get_contents("http://cloud.feedly.com/v3/feeds/feed%2F". rawurlencode($url));
$feedId = json_decode($json, true);
$count = isset($feedId['subscribers']) ? $feedId['subscribers']: 0;
echo $count;
// キャッシュ登録でこの条件が真になるようにする
$Cache_Lite->save($count, $id);
}
参考:
これを、 subs_count.php とでもして、サイトのどこかに置きます。
で、取り出す側は jQuery でテキストファイル読み込みなんかを使っていきます。
jQuery本体の呼び出しは済ませてあるものとします。
ファイル呼び出し
表示ページが PHP なときは、include するとかでいいかと。 以下は、jQueryで先ほどのPHPファイルを取り込みます。
テンプレート上の購読者数表示する場所に以下の要素をいれておきます。
<div id="feedly_subscribers"></div>
複数あるようなときは、class属性にしておき、以下の読み込むときのセレクターもそれにあうようにしておきます。
単に読むだけなので、.load() にしてますが、各種処理が必要な場合は .ajax() のほうにします。
<script>
$(document).ready(function (){
$("#feedly_subscribers").load("//path/to/subs_count.php");
});
</script>
- Newer: メモ: www-rebuilder を使って、任意のテンプレートを再構築
- Older: 今月のいらんことしい(2015年5月)
Comments:
コメントをどうぞ。書き込む場所が不明な場合やサイトオーナーへのコンタクトは、GuestBookまでお気軽にどうぞ
Trackbacks:0
- TrackBack URL for this entry
- https://www.markdiary.com/mt/trackback/58/157
- Listed below are links to weblogs that reference
https://www.markdiary.com/archives/2015/06-06194800.php - Feedly 購読者数の取得 2015年6月版 from maRkのMyOwn
blog comments powered by Disqus