この日本語翻訳は不正確な場合があります。必要に応じて原文を参照してください api.md
他の人が作ったラッパーを利用してもいいし、APIを直接使っても良いと思います。 非常にシンプルなので、レスポンスをもとに独自のデータロジックを作成するのは全く難しくありません。
最大の課題は、データマイニングされたゲームデータをナビゲートし、適切な方法で返されたデータを使用することです。
様々な言語のラッパーについては、Wrappersを参照してください。
APIを使用する際のいくつかのルールです。
-
UIDを列挙したり、データベースを埋めるために大量のリクエストを実行しようとしないでください。 UIDは何億もあり、このAPIでこれを実行することはできません。後日、バッチデータを提供することがあります。
-
リクエストにはカスタムした
User-Agentヘッダを設定してください。 そうすることで、リクエストをより良く追跡し、必要に応じてあなたを助けることができます。 -
UIDのエンドポイントには動的な速度制限があります。 あまりに速く再リクエストすると、応答時間が遅くなり、最終的にはステータスコード429が返されます。 この場合、速度を落とすか、私に連絡してレートリミットを増やすことが可能かどうかを確認する必要があります。 殆どの場合、これは必要ではなく、最適化されていないコードが原因です。
-
全てのUIDリクエストには
ttlというフィールドを返します。 このフィールドは「リクエストされたUIDに対して次の更新(Showcase)が行われるまでの秒数」です。 このフィールドがなくなるまで、エンドポイントはキャッシュされたデータを返しますが、繰り返しヒットするとレートリミットを消費してしまいます。 リクエスト時にttlのタイムアウトを設けてデータをキャッシュするか、ttlが切れるまでそのUIDへのリクエストを行わないようにすることを試してみてください。 これにはRedisをお勧めします。
もしデータの扱いに困ったら、Discordサーバーでヘルプを受けられます。
レスポンスには playerInfo と avatarInfoList が含まれます。
playerInfoはゲームアカウントに関する基本的なデータです。
もし avatarInfoList が見つからない場合は、このゲームアカウントはプロフィールが非公開に設定されているか、キャラクターが設定されていないことを意味します。
リクエストに ?info を付けることで、playerInfo のみをリクエストすることができます。
もし playerInfo だけが必要であれば、このエンドポイントを使用してください。
全てのデータを取得するよりもずっと速く取得する事が出来ます。
さらに、以下の場合にのみ、両方のレスポンスに owner オブジェクトが含まれます。
- ユーザがこのサイトにアカウントを持っている。
- ユーザーが自分のUIDをプロファイルに追加した。
- ユーザーが認証を行った。
- ユーザーがその公開状態を"公開"に設定した。
owner オブジェクトに関する詳細は以下を参照ください。
アプリ内でこれらが適切に処理されるようにしてください。
400 = UIDのフォーマットが合っていない
404 = 対象のプレイヤーが存在しない (これはmihoyoサーバーからのレスポンスです)
424 = ゲームメンテナンス(更新等) / ゲームアップデート後にシステムが破壊的な影響を受けた
429 = レートリミット(EnkaNetWorkかmihoyoサーバーのどちらか)
500 = EnkaNetWorkサーバーのエラー
503 = EnkaNetWorkサーバーの一時停止中
ウェブサイト上でアカウント(プロファイル)を作成し、そのアカウントに複数のゲームアカウントを設定することが可能です。 ユーザーは、認証ページに記載された認証コードによって、そのアカウントが自分のものであることを証明する必要があります。
ユーザーは、好きな名称でビルドを「スナップショット」することができ、「セーブドビルド」と呼ばれています。
ユーザー情報を取得します。
「hoyos」- ゲームアカウントとそのメタデータのリストを取得します。
これは 認証状態 且つ 公開状態 であるアカウントのみを返します(ユーザーはアカウントを隠すことができます。認証されていないアカウントはデフォルトで隠されます)。
レスポンスの各キーはmihoyoの一意な識別子であり、この識別子を使って後続のリクエストで実際にキャラクター/ビルドの情報を取得する必要があります。
1つのゲームアカウントのメタデータを返します。
https://enka.network/api/profile/Algoinde/hoyos/4Wjv2e/builds/
指定されたゲームアカウントの保存されたビルドを返します。これはオブジェクトの配列で、キーはキャラクターの avatarId です。
オブジェクトの配列は与えられたキャラクターの異なるビルドを順不同で表します(ただし、表示の為に順序が記載された order フィールドを持ちます)。
ビルドに live: true フィールドがある場合、それは「保存」されたビルドではなく、単に「更新」をクリックした時に取得されたものであることを意味します。
更新すると、古いliveビルドはすべて削除され、新しいビルドが作成されます。この更新をいつ行うかは、ユーザーだけが決めることができます。
UID エンド ポイントで説明したように、UIDリクエストを行うと、ownerオブジェクトを取得することができます。
このオブジェクトのフィールドを使用して、URLを作成することができます。
https://enka.network/api/profile/{owner.username}/hoyos/{owner.hash}/builds/
| 名前 | 説明 |
|---|---|
| playerInfo | プロフィール情報 |
| avatarInfoList | 公開されたキャラクター詳細のリスト |
ID別の文字の基本データについては、store/characters.jsonにアクセスしてください。 追加情報については、キャラクターデータを確認してください。
| 名前 | 説明 |
|---|---|
| nickname | プレイヤーのニックネーム |
| signature | ゲーム内ステータスメッセージ |
| worldLevel | 世界ランク |
| namecardId | 名刺ID |
| finishAchievementNum | 達成したアチーブメント数 |
| towerFloorIndex | 深境螺旋:層 |
| towerLevelIndex | 深境螺旋:間 |
| showAvatarInfoList | キャラクターIDとレベルのリスト |
| showNameCardIdList | 飾られた名刺のリスト |
| profilePicture.avatarId | プロフィールキャラクターのID |
| 名前 | 説明 |
|---|---|
| avatarId | キャラクターID |
| level | キャラクターLv |
| costumeId | キャラクター衣装ID 詳細はstore/characters.json内の"Costumes"に定義されています |
ID別の文字の基本データについては、store/characters.jsonにアクセスしてください。 追加情報については、キャラクターデータを確認してください。
| 名前 | 説明 |
|---|---|
| avatarID | キャラクターID |
| talentIdList | 命ノ星座IDのリスト 0重の場合はデータがありません |
| propMap | 文字情報プロパティ一覧 |
fightPropMap -> {id: value} |
キャラクターの戦闘プロパティのマップ。 IDの定義を確認してください |
| skillDepotId | キャラクタースキルセットID Skills Data -> "id" |
| inherentProudSkillList | 解放された固有天賦のIDリスト 詳細情報 -> "inherentProudSkillOpens" |
skillLevelMap -> {skill_id: level} |
スキルレベルのマップ 詳細情報 -> "inherentProudSkillOpens" |
| equipList | 武器と聖遺物のリスト |
| fetterInfo.expLevel | 好感度Lv |
| 名前 | 説明 |
|---|---|
| type | プロパティタイプのID 詳細はIDの定義を参照してください |
| ival | 無効な値(これは無視してください) |
| val | プロパティの値 |
| 名前 | 説明 |
|---|---|
| itemId | 識別ID 聖遺物情報 -> "id" 武器情報 -> "id" |
weapon [Weapon Only] |
武器の基本情報 |
reliquary [Artifact Only] |
聖遺物の基本情報 |
| flat | このアイテムの詳細情報 |
武器に関する追加情報については、武器データを確認してください
| 名前 | 説明 |
|---|---|
| level | 武器Lv |
| promoteLevel | 突破段階 |
| affixMap | 精錬ランク [0-4] |
聖遺物に関する追加情報については、聖遺物情報を確認してください
| 名前 | 説明 |
|---|---|
| level | 聖遺物Lv [1-21] |
| mainPropId | 聖遺物メインステータスID MainProps Data |
| appendPropIdList | 聖遺物サブステータスIDのリスト AppendProp Data |
| 名前 | 説明 |
|---|---|
| nameTextHashMap | 表示名の識別番号 参照:言語情報 |
setNameTextHashMap [Artifact Only] |
セット効果の識別番号 参照:言語情報 |
| rankLevel | レアリティ |
reliquaryMainstat [Artifact Only] |
聖遺物のメインステータス |
reliquarySubstats [Artifact Only] |
聖遺物のサブステータス |
weaponStats [Weapon Only] |
武器の基礎攻撃力とサブステータス |
| itemType | 種別(武器:Weapon,聖遺物:Artifact) |
| icon | アイテムアイコン名 アイコン名の使用法 |
equipType [Artifact Only] |
聖遺物種別 |
| 名前 | 説明 |
|---|---|
| mainPropId / appendPropID | プロパティ名。名前の定義を確認してください |
| propValue | プロパティ値 |
| ID | 説明 |
|---|---|
| 1001 | 経験値 |
| 1002 | 突破段階 |
| 4001 | レベル |
| ID | 説明 |
|---|---|
| 1 | 基礎HP |
| 2 | HP |
| 3 | HP% |
| 4 | 基礎攻撃力 |
| 5 | 攻撃力 |
| 6 | 攻撃力% |
| 7 | 基礎防御力 |
| 8 | 防御力 |
| 9 | 防御力% |
| 10 | 基礎速度 |
| 11 | 速度% |
| 20 | 会心率 |
| 22 | 会心ダメージ |
| 23 | 元素チャージ効率 |
| 26 | 与える治癒効果 |
| 27 | 受ける治癒効果 |
| 28 | 元素熟知 |
| 29 | 物理耐性 |
| 30 | 物理ダメージ |
| 40 | 炎元素ダメージ |
| 41 | 雷元素ダメージ |
| 42 | 水元素ダメージ |
| 43 | 草元素ダメージ |
| 44 | 風元素ダメージ |
| 45 | 岩元素ダメージ |
| 46 | 氷元素ダメージ |
| 50 | 炎元素耐性 |
| 51 | 雷元素耐性 |
| 52 | 水元素耐性 |
| 53 | 草元素耐性 |
| 54 | 風元素耐性 |
| 55 | 岩元素耐性 |
| 56 | 氷元素耐性 |
| 70 | 炎元素 元素エネルギー 要求量(元素爆発) |
| 71 | 雷元素 元素エネルギー 要求量(元素爆発) |
| 72 | 水元素 元素エネルギー 要求量(元素爆発) |
| 73 | 草元素 元素エネルギー 要求量(元素爆発) |
| 74 | 風元素 元素エネルギー 要求量(元素爆発) |
| 75 | 氷元素 元素エネルギー 要求量(元素爆発) |
| 76 | 岩元素 元素エネルギー 要求量(元素爆発) |
| 80 | クールタイム短縮 |
| 81 | シールド強化 |
| 1000 | 現在の炎元素 元素エネルギー |
| 1001 | 現在の雷元素 元素エネルギー |
| 1002 | 現在の水元素 元素エネルギー |
| 1003 | 現在の草元素 元素エネルギー |
| 1004 | 現在の風元素 元素エネルギー |
| 1005 | 現在の氷元素 元素エネルギー |
| 1006 | 現在の岩元素 元素エネルギー |
| 1010 | 現在HP |
| 2000 | 最大HP |
| 2001 | 攻撃力 |
| 2002 | 防御力 |
| 2003 | 速度 |
| 3025 | 元素反応 会心率 |
| 3026 | 元素反応 会心ダメージ |
| 3027 | 元素反応(過負荷)会心率 |
| 3028 | 元素反応(過負荷)会心ダメージ |
| 3029 | 元素反応(拡散)会心率 |
| 3030 | 元素反応(拡散)会心ダメージ |
| 3031 | 元素反応(感電)会心率 |
| 3032 | 元素反応(感電)会心ダメージ |
| 3033 | 元素反応(超伝導)会心率 |
| 3034 | 元素反応(超伝導)会心ダメージ |
| 3035 | 元素反応(燃焼)会心率 |
| 3036 | 元素反応(燃焼)会心ダメージ |
| 3037 | 元素反応(凍結(氷砕き))会心率 |
| 3038 | 元素反応(凍結(氷砕き))会心ダメージ |
| 3039 | 元素反応(開花)会心率 |
| 3040 | 元素反応(開花)会心ダメージ |
| 3041 | 元素反応(烈開花)会心率 |
| 3042 | 元素反応(烈開花)会心ダメージ |
| 3043 | 元素反応(超開花)会心率 |
| 3044 | 元素反応(超開花)会心ダメージ |
| 3045 | 基礎元素反応会心率 |
| 3046 | 基礎元素反応会心ダメージ |
| 名前 | 説明 |
|---|---|
| ITEM_WEAPON | 武器 |
| ITEM_RELIQUARY | 聖遺物 |
| 名前 | 説明 |
|---|---|
| EQUIP_BRACER | 花 |
| EQUIP_NECKLACE | 羽 |
| EQUIP_SHOES | 時計 |
| EQUIP_RING | 杯 |
| EQUIP_DRESS | 冠 |
| 名前 | 説明 |
|---|---|
FIGHT_PROP_BASE_ATTACK [Weapon] |
基礎攻撃力 |
| FIGHT_PROP_HP | HP固定値 |
| FIGHT_PROP_ATTACK | 攻撃力固定値 |
| FIGHT_PROP_DEFENSE | 防御力固定値 |
| FIGHT_PROP_HP_PERCENT | HP% |
| FIGHT_PROP_ATTACK_PERCENT | 攻撃力% |
| FIGHT_PROP_DEFENSE_PERCENT | 防御力% |
| FIGHT_PROP_CRITICAL | 会心率 |
| FIGHT_PROP_CRITICAL_HURT | 会心ダメージ |
| FIGHT_PROP_CHARGE_EFFICIENCY | 元素チャージ効率 |
| FIGHT_PROP_HEAL_ADD | 与える治癒効果 |
| FIGHT_PROP_ELEMENT_MASTERY | 元素熟知 |
| FIGHT_PROP_PHYSICAL_ADD_HURT | 物理ダメージ |
| FIGHT_PROP_FIRE_ADD_HURT | 炎元素ダメージ |
| FIGHT_PROP_ELEC_ADD_HURT | 雷元素ダメージ |
| FIGHT_PROP_WATER_ADD_HURT | 水元素ダメージ |
| FIGHT_PROP_WIND_ADD_HURT | 風元素ダメージ |
| FIGHT_PROP_ICE_ADD_HURT | 氷元素ダメージ |
| FIGHT_PROP_ROCK_ADD_HURT | 岩元素ダメージ |
| FIGHT_PROP_GRASS_ADD_HURT | 草元素ダメージ |
https://enka.network/ui/[icon_name].pngでキャラクター、武器、聖遺物のアイコンを得られます
通常、アイコン名は"UI_"または"Skill_"で始まるcharacters talentsを表します
例: https://enka.network/ui/UI_AvatarIcon_Side_Ambor.png
flatのiconを参照
store/characters.jsonから"UI_XXXXXX"または"Skill_XXXXXX"を探します
store/loc.jsonで各言語の翻訳文字列を得る事が出来ます。 この時使用されるキー文字列は
- store/characters.json内の
"NameTextMapHash" - flatの
"nameTextHashMap""setNameTextHashMap" - AppendProp の名前。例:
"FIGHT_PROP_HP""FIGHT_PROP_HEAL_ADD"等です
その他の追加情報をTextMap Dataで得る事が出来ます。ゲームでサポートされている言語のみが含まれます。
TS/JS - https://www.npmjs.com/package/enkanetwork.js - Jelosus1
TS/JS - https://github.com/yuko1101/enka-network-api - yuko1101
Rust - https://github.com/eratou/enkanetwork-rs - eratou
Python - https://github.com/mrwan200/enkanetwork.py - mrwan200