Riot API を使った League of Legends ウェブアプリを公開するまで

League of Legends のウェブアプリを作ったので、その手順を書いてみます。

Riot APIについて

Riot Developer Portal
こちらからサインインすることで、だれでも開発用の API を使うことができます
f:id:ororog:20180213212841p:plain
しかし、開発用の API は次のような制限があります。

  • リクエストに制限がある (20 requests every 1 seconds, 100 requests every 2 minutes)
  • 有効期限(一日)がある
  • 開発用 API を使ったサービスを公開してはいけない

このため、開発用 API ではサービスを公開できません。Riot に申請する必要があります。

API の種類

前述の開発用 API (development API) の他に、Personal API と Production API があります。それぞれ次のような特徴があります。

Personal API

  • リクエストの制限は開発用 API と同じ
  • 有効期限がない
  • 申請が通るまで早い(2, 3日?)
  • アプリケーションが無くても申請可能
  • Personal API を使ったサービスを公開してはいけない

Production API

  • 制限が大幅に緩和される (RATE Limiting)
  • 有効期限がない
  • 申請が通るまで早くて2週間程度必要(体験談)
  • 申請にはアプリケーション URL が必要

個人で楽しむには Personal API でいいのですが、公開するにはやはり Production API が必要です。以下では、Production API を公開するまでの道のりを紹介します。

申請の準備

開発用APIでアプリを作る

どの程度のアプリで申請が通るのかわかりませんが、まずはアプリを作りましょう。開発用 API を使うと毎日更新が必要なことだけ注意しましょう。
開発効率をあげるために、Personal APIをとりあえず申請するのもありです。API を更新する手間が減ります。

ポリシーを理解する

GENERAL POLICIES を熟読しましょう。日本語はたぶんないです。日本 Riot が仕事してくれることを期待しましょう。違法なことはしない、APIキーをもらさない等が書いてあります。

申請する

いよいよ申請です。右上の REGISTER PROJECT から申請します。
f:id:ororog:20180219215621p:plain
次に、PRODUCTION APPLICATION を選択します。規約に同意し、アプリケーションを登録します。以下は、必要な項目です。

  • Project Name

いい名前を付けましょう

  • Project Description

プロジェクトの説明をします。こちら、たぶん日本語は不可です。
アプリのチェックする人が読むものなので、説明はなるべく詳細に書きます。
必要なら使い方も書いたほうが良いと思います。私は説明が足りず理解できなかったのか、アプリが完成していないとしてリジェクトされてしまいました。

  • Project Group

謎です。最初から値が入っているのでそのままにしました。

  • Project URL

実際に動いているアプリの URL を指定します。

登録時に、riot.txt をアップロードして、Riot からアクセスできるようにする必要があります。

結果を待つ

Pending

まずは承認待ち状態です。私は2週間ぐらいで最初の返信が来ました。

Approved

おめでとうございます。あなたのアプリを公開しましょう。

Rejected

私は最初にリジェクトされてしましました。アプリケーションのページのメッセージを見ることで、理由を確認できます。
f:id:ororog:20180219220827p:plain
私の場合、アプリケーションが動いていないと指摘を受けました。既に動いているはずなので、以下の情報をメッセージに追加しました。

  • 日本のデータにしか対応していない
  • 使い方の詳細

メッセージを追加して待つこと4日、無事承認されました。

情報源

基本的に英語ですが、困った場合は次のリンクを参考にしてみてください

リジェクトされた時、似たような人がいないか参考にしました。

作成したアプリはこちらです。 Target Bang!
アプリの紹介はまたの機会にさせていただきます。
皆様もアプリを作ってみてください。