Webサイト、アプリ のデベロッパー向けにデータ取得や更新のためのAPIを提供するものです。

はじめに

アカウントは必要ありません。リストから Data APIを探します。データ形式JSON(JavaScript Object Notation)です。

リソースとリソースの種類

API を使用してやり取りできる各種リソースです。 別ドメインからのアクセスではJSONP形式を選び、取得する側に callback関数(例ではgetJSON関数とする)を実装してください。

リソースの種類説明レスポンスヘッダ
frames - jsonapi/frames.jsonapplication/json; charset=UTF-8
frames - jsonpapi/frames.json?callback=getJSONapplication/javascript; charset=UTF-8

リクエストの種類

POST method でリクエストを送信してください。その他のリクエスト形式では Method Not Allowed をリターンして失敗します。

パラメタの種類

frames.jsonが受理するパラメタの一覧です。

パラメタの種類説明詳細
tキャラクターの指定。必須。 1~44: Abel~Rolentoまで。
vバージョンの指定。任意。 4: ウルトラストリートファイターIV Ver1.05, 5: ウルトラストリートファイターIV OMEGA。 

リクエストのサンプル

URL: http://sf4.sakura.ne.jp/note/api/frames.json?t=1&v=4 (実装サンプルを元に、適宜POSTに変換してください)

説明: ウルトラストリートファイターIV Ver1.05 Abel のフレームデータを返します。

API レスポンス:
[
	{
		"Frame": {
			"id": "3399",
			"sort": "3399",
			"char_id": "1",
			"unity": "3399",
			"ver": "4",
			"name": "\u8fd1\u5f31P",
			"name_eng": "Close LP",
			"nickname": "\u8fd1\u5f31P",
			"nickname_eng": "Close Jab",
			"is_chain": "0",
			"chains": "",
			"hit_level": "HL",
			"damage": "25*15",
			"damage_int": "40",
			"shave": "0",
			"hits": "2",
			"stun": "30*20",
			"stun_int": "50",
			"gain": "20*20",
			"gain_int": "40",
			"cancel": "ch\/sp\/su*su",
			"is_light": "1",
			"startup": "4",
			"startup_int": "4",
			"active": "3(8)3",
			"active_int": "14",
			"recovery": "11",
			"recovery_int": "11",
			"total": "28",
			"on_guard": "-3",
			"on_guard_int": "-3",
			"on_hit": "0",
			"on_hit_int": "0",
			"block_stun": "11",
			"hit_stun": "14",
			"full_invincible": "-",
			"strike_invincible": "-",
			"projectile_invincible": "-",
			"throw_invincible": "-",
			"airborne": "-",
			"invi_start": "0",
			"invi_end": "0",
			"body": "",
			"body_eng": "",
			"move": "no",
			"na_reversal": "0",
			"na_combo": "0",
			"is_custom": "0",
			"is_old": "0",
			"is_invincible": "0",
			"ex_fa_fd_on_block": "",
			"ex_fa_fd_on_hit": "",
			"user_id": "1",
			"modified": "2014-09-30 16:44:05"
		},
		"Char": {
			"id": "1",
			"sort": "20",
			"name": "\u30a2\u30d9\u30eb",
			"name_eng": "Abel",
			"name_group": "\u3042",
			"version": "4",
			"user_count": "0",
			"topic_count": "2"
		}
	}
]

補足:
unity         異なるバージョン間で同一の技を識別するためのキー
ver           バージョン指定
is_chain      派生技かどうか
chains        どの技に派生するか(複数)
damage_int    damageの合計値
shave         削り値
is_light      弱攻撃(連キャン判定用)
invi_start    物理無敵の開始f
move          技の分類
na_reversal   reversalのリスト含めない(NA=該当しない)
na_combo      comboのリストに含めない(NA=該当しない)
is_custom     権限なく編集可能
is_old        古いデータ
is_invincible 無敵一覧に表示する

実装サンプル

一例です。

jquery
$.ajax({
  type: 'POST',
  url: 'http://sf4.sakura.ne.jp/note/api/frames.json',
  datatype: 'jsonp',
  data: {
    "t": 1,
    "v": 4,
  },
  success: function(json) {
    $.each(json, function(idx, obj) {
      console.log(obj.Frame.name);
    });
  }
});
php
$url = "http://sf4.sakura.ne.jp/note/api/frames.json";

$data = http_build_query(array("t" => 1, "v" => 4));

$header = array(
	"Content-Type: application/x-www-form-urlencoded",
	"Content-Length: " . strlen($data)
);

$options = array("http" =>
	array(
		"method" => "POST",
		"header"  => implode("\r\n", $header),
		"content" => $data
	)
);

$json = file_get_contents($url, false, stream_context_create($options));
$frames = json_decode($json);

var_dump($frames);
 

Top

Street Fighter IV Note. By Joro.