スプステージ2 ver1.3


スプラトゥーン2のステージ情報を返すピュアPHPなAPI

スプステージ2は、データの取得からJSONの書き出しまですべてピュアなPHPで実行しています。cURLすら使ってません()

スプステージ2は要望がない限りstat.inkには対応しません。

(理由としては、どうせstat.ink利用者はそっち側により近いAPIを使うだろうから、そういうニーズはそっちに任せてしまおうというのと、僕らは道楽でAPIを作っていて、その目的はあくまで情報を集める事であるから、この対応は不要と考えました。)

前作のAPIはこちら

このAPIについて

https://spstage2.splamp.info/regular
https://spstage2.splamp.info/league?timezone=asia/tokyo
とりあえずGETで叩く。jsonが返ってきます。
(実はPOSTでも動作します…それ以外のメソッドでは動かないです)

現時点では日本語のみの対応です。

基本的には前作のやつとほぼ同じですが、構造に関するオプションは削除しました。

httpsに一本化しています。httpで叩いてもhttpsで返ってきます。
Content-Typeは「application/json; charset=UTF-8」となります。

基本的な使い方

https://spstage2.splamp.info/now
現在のステージ情報を取得

https://spstage2.splamp.info/all
過去に開催されたステージ情報をまとめて取得

https://spstage2.splamp.info/?q=バッテラ
開催されたステージの検索

などなど
ルールを指定せずに取得した場合はルールをごっちゃにして表示するので、これを利用して何かを作る場合はルールごとに分けて取得したほうがいいです
※修正しました

出力の構造

例:https://spstage2.splamp.info/regular/recent?timezone=jst
基本的な形式。

{
  "result": [
    {
      "start": "2018-05-24T13:00:00+09:00", // 開始時刻 ISO-8601形式
      "end": "2018-05-24T15:00:00+09:00", // 終了時刻 ISO-8601形式
      "start_t": 1527134400, // 開始時刻 UNIXタイムスタンプ
      "end_t": 1527141600, // 終了時刻 UNIXタイムスタンプ
      "maps": [
        {
          "id": 5, // ステージ1の番号
          "name": "コンブトラック" // ステージ1の名前
        },
        {
          "id": 9, // ステージ2の番号
          "name": "エンガワ河川敷" // ステージ2の名前
        }
      ],
      "rule": {
        "key": "turf_war", // ルール記号
        "name": "ナワバリバトル" // ルール名
      }
    }
  ],
  ...
}

例:https://spstage2.splamp.info/any/now?timezone=jst
複数のルールを一度に取得すると、ルールごとに分けて表示します。

{
  "result": {
    "regular": [ // レギュラーマッチ
      ...
    ],
    "ranked": [ // ガチマッチ
      {
        "start": "2018-05-24T13:00:00+09:00",
        "end": "2018-05-24T15:00:00+09:00",
        "start_t": 1527134400,
        "end_t": 1527141600,
        "maps": [
          {
            "id": 15,
            "name": "アロワナモール"
          },
          {
            "id": 4,
            "name": "海女美術大学"
          }
        ],
        "rule": {
          "key": "clam_blitz",
          "name": "ガチアサリ"
        }
      }
    ],
    "league": [ // リーグマッチ
      ...
    ]
  }
}

例:https://spstage2.splamp.info/any/now?timezone=jst&mode_mix=true
ルールごとに分けずに表示する事もできます。検索以外ではあまり有用ではないかもです()

{
  "result": [
    ...,
    {
      "start": "2018-05-24T13:00:00+09:00",
      "end": "2018-05-24T15:00:00+09:00",
      "start_t": 1527134400,
      "end_t": 1527141600,
      "maps": [
        {
          "id": 6,
          "name": "マンタマリア号"
        },
        {
          "id": 18,
          "name": "アジフライスタジアム"
        }
      ],
      "mode": {
        "key": "league", // マッチモード記号
        "name": "リーグマッチ" // マッチモード名
      },
      "rule": {
        "key": "splat_zones",
        "name": "ガチエリア"
      }
    }
  ]
}

詳しい使い方

フラグ

オプション

更新履歴

2017/07/23 0.1 試験公開
2017/07/27 0.1.1 ルールを指定して全件取得した場合に順番が狂うバグを修正
2017/07/29 0.2 複数のルールをまとめて取得した場合に、ルールごとに分けて表示するように変更。複数のルールを分けずに表示した場合、"mode" キーを表示する mode_mix オプションを追加
2017/07/30 0.2.1 mode_mix オプション使用時の並び順を変更
2017/07/30 0.2.2 ルールをまとめて取得した場合に過剰に表示してしまうバグを修正
2017/07/30 0.2.3 数字のみで表現される "start_t" "end_t" "id" キーの値を文字列形式から数値形式に変更
2017/07/31 0.3 ステージ一覧・ルール一覧の出力機能を追加。新しいステージが提供開始されたら自動的に追加されます。
2017/08/16 1.0 内部のセッションのコード完成。脱ベータ
2017/08/23 1.0.1 調整
2017/09/10 1.1 Apacheで制御していたリダイレクトやコンテンツ圧縮などをPHPで制御するように変更。コンテンツ圧縮方法を指定する encoding オプションを追加(指定しなかった場合の初期値は自動圧縮)
2017/10/09 1.1.1 一部の環境で encoding オプションを指定しなかった場合に結果が空(0バイト)になるバグを暫定修正(指定しなかった場合の初期値を自動圧縮から圧縮なしに変更)
2017/10/10 1.2 コードをカプセル化(かなり雑に)
2017/10/10 1.2.1 ステージ一覧・ルール一覧を取得しようとした時に結果が「Array」になるバグを修正。ステージ一覧・ルール一覧の "id" の値を文字列形式から数値形式に変更
2017/10/17 1.2.2 mode_mixオプションをtrueにした時にモードの並び順を時間ごとにレギュラー、ガチ、リーグで並べるようにしました。/rulesを表示した時にkeyが数字の0になるバグを修正
2017/10/22 1.2.3 mode_mixオプションの初期値を検索時においてもfalseに変更
2017/11/11 1.3 取得元の仕様変更に応じてデータ取得スクリプトを書き直しました。同時にcURLを導入

今後の開発予定

  • フェス対応(イカ2の仕様上優先度は低め…)
  • 海外版からもデータを取得するようにする

お問い合わせはTwitterにて

分からないこと等があればお気軽にお問い合わせ下さい。

広報妖怪 @kouhouyoukai ナモすけ @dnm_b

誰か翻訳してくれたらここに翻訳者の名前も載せたいななんて


ステージ情報
13:00 ~ 15:00
(あと1時間41分)
レギュラー
ナワバリ

コンブトラック

エンガワ河川敷

ガチ
ガチアサリ

アロワナモール

海女美術大学

リーグ
ガチエリア

マンタマリア号

アジフライスタジアム

このサイトはSplatoonのファンサイトで、任天堂株式会社とは一切関係ありません
このページの最終更新日: 2017/11/16 06:37 Twitter © SPLAMP