Firefox Marketplace API で遊ぼう [Firefox OS]

Firefox OS Advent Calendar 2013 の 8 日目 12/8 の記事です。

ひらとり (@flatbirdH) です。好きな勉強会会場は Mozilla Japan オフィス@六本木です。

今日は、Firefox Marketplace API をご紹介します。

Firefox Marketplace API は Firefox OS のアプリマーケット Firefox Marketplace の色々な機能にアクセスできるステキ Web API です。

Marketplace Logo

Firefox Marketplace API を試してみる

早速ですが、Search API をコールする以下の URL をクリックしてみて下さい。
これは、キーワード "twitter" でアプリを検索するリクエストです。JSON 形式でレスポンスが返ってきます。

https://marketplace.firefox.com/api/v1/apps/search/?q=twitter&app_type=hosted&format=JSON

このように、Firefox Marketplace API は REST API で簡単に利用できます。

ちなみに、筆者はこのような JSON 形式の API を試すときは curl と jq を使っています。もっといい方法があったら教えて下さい。

$ curl https://marketplace.firefox.com/api/v1/apps/search/?q=twitter&app_type=hosted&format=JSON | jq .

CORS とか Rate-limit とか

Firefox Marketplace API は CORS (Cross-Origin Resource Sharing) に対応していますので XHR でアプリからも使えます。

Rate-limit は今のところ Abuse API と Feedback API にしか掛かっていません。かなり自由に使えます。色々作れそう!

アプリの種類

Firefox Marketplace は Firefox OS アプリだけでなく、PC 版 Firefox アプリと Android 版 Firefox アプリをホストしています。Firefox Marketplace API でもこれらのアプリ情報を統一して扱います。API では以下のように区別されています。

  • "desktop"
  • "android-mobile"
  • "android-tablet"
  • "firefoxos"

Firefox Marketplace API の公式ドキュメント

Firefox Marketplace API の公式ドキュメントはこちらです。詳しい使い方はこちらを参照してください。

https://firefox-marketplace-api.readthedocs.org/en/latest/

Firefox Marketplace API で出来ること

Firefox Marketplace API で出来ることの例として、筆者が作ったアプリを2つご紹介します。

Firechart

Firechart

http://www.firechart.info/

  • Firefox Marketplace の情報をグラフで表示します。
  • Firefox のホスト型アプリとしても公開しています。時々止まっているのはご愛嬌です。
  • Firefox Marketplace の日次ダンプの Export データを利用しています。

Firefox Marketplace for Tizen

  • Tizen OS 上で Firefox のホスト型アプリをあたかも普通のアプリのように起動する Tizen アプリです。
  • Search API を利用して Firefox Marketplace のホスト型アプリを検索します。
  • LT のために作ったネタアプリでなので怒らないで下さい...。公開もしてません。

このように、Firefox Marketplace API を使うことで Marketplace の情報にアクセスする色々なアプリやサービスを作れます。実際、Firefox OS にプリインの Marketplace アプリ Fireplace も Firefox Marketplace API を利用して実装されています。

色々な API

Firefox Marketplace API では、アプリ情報の検索・取得だけでなく Marketplace のほとんどの機能にアクセスすることができます。多くの API が情報の取得 (GET) だけでなく、作成 (POST)、更新 (PUT)、削除 (DELETE) に対応しています。

ここで、筆者の好きな API/気になる API のトップ 10 を決めてみました。

1. Export API

  • アプリ情報の日次ダンプデータを tarball で丸ごと取得できます。気前がいい!
  • 無造作に .tgz ファイルが置いてあるだけでこれが果たして API なのかも怪しいですが、そんな大胆なところもステキです。

2. Search API

  • Marketplace API の王道 Search API はやはり外せませんね。
  • Manifest URL もとれるので、Apps.instal API でインストールもできます。

3. Statistics API

  • Marketplace に登録されたアプリ数の推移やインストール数といった統計情報が取れます。
  • Firefox OS が来るのか来ないのか? マーケットの成長をウォッチできます。
  • FireChart を作る前に欲しかった!

4. Ratings

  • アプリのレーティング情報にアクセスできます。
  • 各レーティング情報に含まれるコメント、ユーザ名、星の数、全て取れます!コメントが生々しい、...っていうかスペイン語(?) が多くて読めない!
  • レーティングをスパム報告する (Flagging as spam) なんて API もあります。

5. App Features API

  • Firefox OS のサポートする色々な機能 ("TCP Sockets" とか "Simple Push" とか) の一覧がとれます。 https://marketplace.firefox.com//api/v1/apps/features/ を試してみてください。
  • 沢山の機能が Web API で実現されていて、ながめていると夢が広がります。どんどん増えて欲しいなー。

6. Site API

  • アプリのカテゴリ、キャリア、リージョンの一覧などが取れます。
  • キャリアに KDDI がいるねーとか、リージョンに China があるのに Japan がないのは何でだ!ぐぬぬ...とかできます。
  • Marketplace の設定が取れる Configuration API なんていう誰得 API もあります。

7. Rocketfuel API

  • Marketplace で開発中の新機能のための API みたいです。
  • こんなのも無造作にオープンにされててドキュメントまであるのが素敵です。

8. Feed API

  • 現在の Marketplace API は Version 1 (v1) なのですが、なんとこれは v2 の API です。
  • 将来 Rocketfuel で利用する機能として、他の API のデータのコンテナとなる "Feed" のストリームを操作するらしいです。

9. Accounts API

  • 自分のアカウントの情報や Marketplace 上での権限 ("admin", "developer", "localizer", "lookup", "reviewer") を確認できます。
  • インストール済アプリの一覧も見られるみたいです。

10. Abuse API

  • 不正なアプリ・ユーザをタレ込める API です。いつか使ってみたい!
  • 30 リクエスト/時のレート・リミットがかかっています。

その他のトピック

認証 (Authentication)

情報を変更する API やユーザ自身の情報にアクセスする API には認証が必要になります。Firefox Marketplace API では Persona と OAuth の2種類の認証方法をサポートしています。

(参考)

Zamboni

Zamboni は Firefox Marketplace と Firefox の Add-ons サイトのソースコードです。Firefox Marketplace API のソースもここに含まれますので、詳しく調べることが出来ます。


今日は Firefox Marketplace API をご紹介しました。かなり色々なことが出来そうなので、機会があれば使ってみてください。

Published: December 08 2013

  • category: