特定のiOSアプリのAppStoreでのランキングをSlackに通知したい

f:id:misyobun:20171022203844j:plain

最近はボーッとiOSAppStoreのランキングを眺めながら
「世の中のトレンドとは・・・」
的なことを、陽の光も疎らな地下室めいた雰囲気の漂う部屋で乾いた唇を擦り合わせボソボソと独り呟く日々を過ごしている。

そんな日々を過ごしていると、次第に気になるアプリのジャンル別でのランキング推移をSlackに貯めたい(通知したい)なーという欲求がもたげてくるのは必然だと思う。

iOS11からAppStoreアプリ詳細画面でランキング順位が確認できるようになったけれど、いちいちiPhoneからそれらを記録していくのは面倒。

AppAnalytics系のライブラリをボチボチ見ていたけど、ランキング情報自体が提供されていないからラッパーモジュールを利用しても辛そう。 (そもそも自分が管理していないアプリの情報は取れないし)

ちなみにAppAnnieのAPIを使おうかと思ったら無料ユーザでは「快適なAPI」は使えないらしい。

https://www.appannie.com/jp/pricing/#market-data

日々、爪に火をともすような生活をしている身なので金銭を払う余裕などない

困ったなーとしばらく悩んだ末、iTunesのSearch APIとRSS Feedを使う形でお茶を濁すことにして、早速、簡単なnpmのモジュールを作成した。

github.com

使い方はUsageの通りで

var appStoreRank = require("appstorerank")
var reporter = new appStoreRank.Reporter({
    appId:'0000000',  // App Tracking ID for application you want to know about ranking
    limit:'200'       // Rank limit
});

reporter.request(function success(result){
    const appName = result['appName'];
    const rank    = result['rank'];
    if (result['rank'] === -1) {
        console.log(`${appName}はランキング 圏外 です。`);
        return
    }
    console.log(`${appName}の現在の順位は ${rank}位 です。`)
},function error(res) {
    console.log("error: ",res);
});

この方針の欠点はRSS Feedで取得できるランキング種別で使えそうなのが「トップ無料アプリ」で、その上限が200近辺(ジャンルによって多少前後するらしい)という事情から200位以降の場合、具体的な順位がわからないことだ。 (まあ、200位以降の順位の場合はそもそも「世の中のトレンド」とは無縁の状態にあるとみなして割り切ればいいだろう)

スクリプトの定期実行の設定をしてランキング情報もSlackに飛ばせるようになった。

f:id:misyobun:20171022202318p:plain

やはり今の時代、ブックカテゴリーの上位層は無料コミックアプリが占めている。強いな。
さぁ、順位もわかったし今日も静かにスマホで無料コミックを読もう。