無所属

ホーム ドキュメントとヘルプ
Steamworks ドキュメンテーション
Web API 概要

概要

Steam は、多数の Steamworks 機能にアクセスする際に使用できる HTTP ベースの Web API を公開しています。 API は、ゲームクライアントまたはサーバー等の HTTP リクエストを作成できるすべてのアプリケーションからアクセスできるパブリックメソッドを含みます。 同時に、信頼できるバックエンドアプリケーションからのアクセス用に、認証の必要な保護されたメソッドも含みます。

例えば、Web API メソッドは一般的に安全なパブリッシャーサーバーによって次の用途に使用されます:
  • サーバーと Steam ユーザーの資格情報の確認
  • ユーザーが特定のアプリケーションを所有しているかの確認
  • ユーザーの統計、実績、ランキングスコアの設定や取得
  • ゲーム内購入の実行

Steamworks Web API の提供する全リストは Steamworks Web API Referenceです。

リクエストフォーマット

パブリックの Steamworks Web API へは、api.steampowered.comに HTTP (port 80) または HTTPS (port 443) リクエストしてアクセスします。
パブリッシャーに対し、Steam はパートナー専用の Web API サーバーをhttps://partner.steam-api.com にホストしています。 このサービスの目的はパブリックホストよりも高い可用性の提供です。利用に際して、すべてのリクエストは安全なサーバーから実行してください。 詳細は Web API ホストアドレス、ファイアウォールについて を参照してください。

Steamworks C++ API 同様、Web API は関連するメソッドを含む複数のインターフェイスに分かれています。 それぞれの API リクエストの URI は次の形式をとります:
https://api.steampowered.com/<interface>/<method>/v<version>/

ほとんどのメソッドは必須およびオプションのパラメーターをサポートしています。 メソッドによりますが、これらのパラメーターはリクエスト内で GET または POST として渡される必要があります。

すべてのリクエストは HTTP 1.1 で送信し、可能な場合には SSL v3 128ビット暗号化して送信してください。 コンテンツのタイプは application/x-www-form-urlencoded で、POST パラメーターは標準形式の URL エンコーディング形式でリクエストのボディに含めてください。 テキストは UTF-8 で送信する必要があります。

認証

多くの Web API メソッドには、一意のキーを必要とするアクセス制限があります。詳細は Web API キーを使用した認証 を参照してください。

配列パラメーター

いくつかのメソッドでは、パラメーターに配列を使用します。 これは、パラメーター名の [0] 接尾辞によって指定されます。 配列を渡す場合は、配列内のパラメーターの数を指定する count パラメーターが常に存在します。 例:
?count=2&name[0]=SomeNameHere&name[1]=SomeOtherName

サービスインターフェイス

通常の Web API コールに加え、サービスインターフェイスもあります。 これらのインターフェイスは、通常のインターフェイスと非常によく似た機能を果たします。主な違いは、すべてのサービス API で、GET または POST パラメーターに加え、引数を一つの JSON blob として受け取れることです。 JSON としてデータを渡すには、次のように input_json パラメーター設定して Web API メソッドを呼び出してください:
?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&input_json={"steamid":76561197972495328}

JSON は URL エンコーディングが必要であることに注意してください。 "キー" と "フォーマット" フィールドは以前と同様に別々のパラメーターとして渡される必要があります。 POST リクエストも同様にサポートされます。

WebAPI が"サービス"インターフェイスかの識別は名前から判別できます。サービスの場合はIPlayerService のように "Service"で終わり、パラメーターデータを追加で渡す追加のメソッドをサポートしています。 より複雑な構造のパラメーターを持つ一部のサービスメソッドは、この代わりの入力フォーマットを必要とする場合があります。

クエリの例

以下は、Team Fortress 2 の最新ニュース 3 件を取得する例です。
リクエストは、JSON 形式でレスポンスを返すよう指定し、必要な AppID パラメーター(Team Fortress 2 の AppID は440)と、返される結果の数を制限するオプションの count パラメーターが含まれています。

GET /ISteamNews/GetNewsForApp/v2/?appid=440&count=3\r\n Host: api.steampowered.com\r\n Content-Length: 0\r\n\r\n

このクエリ―を実行し、結果を次のリンクから確認できます :
https://api.steampowered.com/ISteamNews/GetNewsForApp/v2/?appid=440&count=3

この呼び出しに関する詳細情報はこちら: ISteamNews/GetNewsForApp

ユーザーの SteamID の取得

Steamworks Web API は一意の 64 ビット Steam ID を使用して各ユーザーを識別します。 Steam ID を安全に取得する方法は ユーザー認証と所有権確認 を参照してください。

Web API ホストアドレス、ファイアウォールについて

パブリック Web API (api.steampowered.com) は Akamai 社のエッジキャッシュサーバーの背後にあるため、あなたの現在地やサービスの変更によって、表示される実際の IP アドレスが異なる場合があります。 IP は頻繁に変化するため Web API をアウトバウンドリクエスト (インターネット経由) でファイアウォール越しに呼び出す場合は、以下をお読みください。

その際は、パートナー専用ノード (https://partner.steam-api.comを使用してセキュアサーバーからすべてのリクエストを送信してください。 このホストサーバーにはパブリックホストとは異なるプロパティがあります:
  • このホストは HTTPS でのみアクセス可能です。
  • このホストは Akamai 社のエッジキャッシュの背後にはありません。
  • このホストへのリクエストは、通常はキーが必要とされないリクエストも含めて、すべてあなたのパブリッシャー Web API キーで行われる必要があります。 有効なパブリッシャーキーで行われないリクエストには 403 エラーコードが返されます。
  • 403 ステータスコードを生じるリクエストは、接続している IP に対して厳格なレート制限を適用します。 これは高い可用性を確保するための措置で、 テスト中である場合や、パブリッシャーキーではない通常の Web API キーを使用した場合を含み、一定時間内に 403 ステータスコードを返すリクエストを一定数生成すると、ホストはあなたの IP をしばらくの間、拒否リストに登録します。
  • 送信リクエストにファイアウォールフィルタが適用されるホストからこの API サービスにリクエストを行う場合は、DNS 名『partner.steam-api.com』を許可リストに追加してください。 ファイアウォールが数字のアドレスしかサポートしていない場合には、次の CIDR ブロックを許可リストに追加してください: 208.64.200.0/22.
    注意: Web API サーバーには IP ではなく DNS 名で接続してください。 これらのアドレスはファイアウォールでそのアドレスをホワイトリスト化する必要があるクライアントにのみ提供しています。