MT6 Data APIを使ったアクセスランキングスクリプト

今回、MovableType6で新規導入された Data APIを使ってアクセスランキングのスクリプトを作ってもらいました。

MT6 Data APIを使ってPVランキングを作成するスクリプトを作ったよ - uehatsu's tech blog

MTプラグインでも良かったのですが、せっかくMT6に適用するのだから Data APIを使わないと勿体ない。というのも、かなり便利だからです。

【MT pluginの場合】
plugin

MT pluginの場合、MTの中に組み込まれてhtmlを出力することになりますが、これを書くにはMTのお作法を知り、習得する必要があります。それはそれでいいのですが、ちょっとばかり敷居が高いのも事実。

【Google Analytics APIを使う場合】
script2

ではMTのことを一旦忘れ、Google AnalyticsのAPIを直接叩いて情報を得るスクリプトを書くという手段もあります。そこで整形したランキングhtmlはMT管理下のhtmlからはインクルード(phpインクルードや、SSI)して表示させる方法です。

これはMTを知らなくていいのですが、今度は Google Analytics APIを知る必要があり、それはそれで面倒です。

【Apache access logを使う場合】

script3

よし、Google Analyticsのことも忘れよう、という向きには Apacheのアクセスログを直接さらって集計するという力技もあります。しかしログが膨大だとスクリプトの負荷が高くなることや、エントリーのタイトルやカテゴリをとってくるのにまた何かしらしなきゃいけないので汎用性が低いです。それにGoogle Analyticsのアクセス数とApacheのログでは微妙に結果が異なるし、1日程度ならまだしも、1ヵ月や1年でのアクセスランキングをとろうとした瞬間に破綻します。

そこで。

【MT6 Data APIを使う場合】
script1

MT6 Data APIの出番です。

MT6とGoogle Analyticsは Webサービス設定で連動し、アクセス情報がとれるようになっています。
【Webサービス設定】
webservice

そのため、外からはMT6 Data APIを扱うだけでよくなります。またエントリーにまつわる情報、どんなアーカイブ(個別、カテゴリ、月別)なのかや執筆者、タイトルなどの情報がとれるので、表示情報が多彩に。スクリプト自体はphpでもrubyでも、好きな言語を使って構いません。

wonderdriving.comでは

・直近2日間の個別ページアクセスランキング上位5件
タイトル、カテゴリ(メインカテゴリのbasename)、投稿日表示
・ランキングhtmlをスクリプトで1時間に1回出力するように設定

して表示しています。

詳細、テクニカルなことはこちらにて。

MT6 Data APIを使ってPVランキングを作成するスクリプトを作ったよ - uehatsu's tech blog

ワンダーツー株式会社ではこのスクリプトをカスタマイズしてインストールするサービスを請け負います。またこの他MTインストール、MTプラグイン開発、ウェブシステム開発(PHP等)、ECサイト構築、iPhoneアプリ開発も承りますので、ご興味のある方はぜひお知らせ下さい。

【関連記事】

Movable Type 6.0 Beta 1 の Data APIを使ってRSSリーダー風iOSアプリを作成する - uehatsu's tech blog