この日本語ドキュメントは翻訳されたものであり、不正確な場合があります。必要に応じて英語版の原文を参照してください
他の人が作ったラッパーを利用してもいいし、APIを直接使っても良いと思います。 非常にシンプルなので、レスポンスをもとに独自のデータロジックを作成するのは全く難しくありません。
最大の課題は、データマイニングされたゲームデータをナビゲートし、適切な方法で返されたデータを使用することです。
様々な言語のラッパーについては、Wrappersを参照してください。
APIを使用する際のいくつかのルールです。
-
UIDを列挙したり、データベースを埋めるために大量のリクエストを実行しようとしないでください。 UIDは何億もあり、このAPIでこれを実行することはできません。後日、バッチデータを提供することがあります。
-
リクエストにはカスタムした
User-Agent
ヘッダを設定してください。 そうすることで、リクエストの追跡が簡単になり、必要に応じてあなたを助けることもできます。 -
UIDのエンドポイントには動的な速度制限があります。 あまりに速く再リクエストすると、応答時間が遅くなり、最終的にはステータスコード429が返されます。 この場合、速度を落とすか、私に連絡してレートリミットを増やすことが可能かどうかを確認する必要があります。 殆どの場合、これは必要ではなく、最適化されていないコードが原因です。
-
全てのUIDリクエストには
ttl
というフィールドを返します。 このフィールドは「リクエストされたUIDに対して次のデータ更新が行われるまでの秒数」です。 値が0になるまでエンドポイントはキャッシュされたデータを返しますが、その間であってもリクエストするとレートリミットを消費してしまいます。 リクエスト時にttl
のタイムアウトを設けてデータをキャッシュするか、ttl
が切れるまでそのUIDへのリクエストを行わないようにすることを試してみてください。 この処理にはRedisなどを用いることをお勧めします。
もしデータの扱いに困ったら、Discordサーバーでヘルプを受けられます。
レスポンスには playerInfo
と avatarInfoList
が含まれます。
playerInfo
はゲームアカウントに関する基本的なデータです。
もし avatarInfoList
が見つからない場合は、当該UIDのアカウントはプロフィールが非公開にされているか、キャラクターが設定されていないことを意味します。
リクエストに ?info
を付けることで、playerInfo
のみをリクエストすることができます。
もし playerInfo
だけが必要であれば、このエンドポイントを使用してください。
全てのデータを取得するよりもずっと速く取得する事が出来ます。
さらに、以下の条件を満たす場合、両方のレスポンスに owner
オブジェクトが含まれます。
- ユーザがこのサイトにアカウントを持っている。
- ユーザーが自分のUIDをプロファイルに追加した。
- ユーザーが認証を行った。
- ユーザーがその公開状態を"公開"に設定した。
owner
オブジェクトに関する詳細は以下を参照ください。
アプリ内でこれらが適切に処理されるようにしてください。
400 = UIDの形式不正 (入力された値が範囲外であるなど)
404 = そのUIDを持つプレイヤーが存在しない (これはmiHoYoサーバーからのレスポンスです)
424 = ゲームメンテナンス (更新等) / ゲームアップデート後にシステムが大幅に変更されて更新が必要
429 = レートリミット (Enka.NetWorkかmiHoYoサーバーのどちらか)
500 = Enka.NetWorkサーバーのエラー
503 = Enka.NetWorkサーバーの一時停止中
ウェブサイト上でアカウント(プロファイル)を作成し、そのアカウントに複数のゲームアカウントを設定することが可能です。 ユーザーは、認証ページに記載された認証コードによって、そのアカウントが自分のものであることを証明する必要があります。
ユーザーは、好きな名称でビルドを「スナップショット」することができ、「保存されたビルド」と呼ばれています。
ユーザー情報を取得します。
「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/
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
Python - https://github.com/seriaati/enka-py - seriaati