このチュートリアルでは、購入フローを機能させ、購入したアイテムの引き換えが可能となるように PlayFab と Steam の両方を正常に統合する方法について説明します。
前提条件
- PlayFab のゲーム マネージャーのタイトル。
- アプリは既に作成されており、Steamworks で提供されている。
- 選択したタイトルと Steam の間の既存の統合。これについては、「Marketplace の統合: Steam」を参照できます。
注意
この統合を Steam の観点から機能させるために必要な手順の概要については、「Steam のドキュメント」を参照してください。
手順 1: アイテム定義を作成する
まず、いくつかのアイテム定義を作成してアップロードする必要があります。
アイテム定義を作成して JSON ファイルを保存したら、次の手順に従ってアプリのインベントリ サービスに移動し、ここでアイテム定義をアップロードできます:
- Steamworks に移動します。
- 上部のナビゲーション メニューから [アプリとパッケージ] > [すべてのアプリケーション] を選択します。
- [すべてのアプリ] の一覧から目的のアプリを選択します。
- 下にスクロールし、[テクニカル ツール] の下にある [Steamworks 設定の編集] を選択します。
- [コミュニティ] > [インベントリ サービス] を選択します。
- [アイテム定義] セクションに移動し、目的のアイテム定義 JSON ファイルを参照します。
- [アップロード] を選択します。
アイテム定義スキーマは次のようになっているはずです。
{
"appid": "452820",
"itemdefid": "300",
"Timestamp": "2024-09-09T19:28:27Z",
"modified": "20240909T192827Z",
"date_created": "20240909T192827Z",
"type": "item",
"display_type": "",
"name": "Bag of 300 Gold",
"price": "1;VLV0",
"quantity": 1,
"description": "A super awesome bag of 300 gold!",
"background_color": "3C352E",
"name_color": "7D6D00",
"promo": "owns:3223900",
"tradable": false,
"marketable": false,
"commodity": false
}
アイテム定義がアップロードされると、次のスクリーンショットのようになるはずです。
注意
アイテム定義スキーマの詳細については、「Steamworks のドキュメント」を参照してください。
手順 2: インベントリ サービスを有効にする
アイテム定義がアップロードされたので、アプリのインベントリ サービスを有効にする必要があります。 このアクションは、次の方法で、アイテム定義をアップロードしたのと同じページで実行できます:
- 次の URL を使用してアプリの [インベントリ サービス] ページに移動します:
https://partner.steamgames.com/apps/inventoryservice/{YourAppID}
- [インベントリ サービスを有効にする] チェック ボックスをオンにして、インベントリ サービスを有効にします。
手順 3: アセット サーバー キーを設定する
インベントリ サービスが有効になったら、アセット サーバー キーが設定されていることを確認する必要があります。 このキーは、最初の統合中 (具体的には、「Steam の統合に関するドキュメント」の手順 2) に作成されたパブリッシャー Web API キーと一致する必要があります。
注意
また、Steam のドキュメントに記載されている手順に従ってパブリッシャー Web API キーを作成することもできます。
パブリッシャー Web API キーを作成したら、次の手順に従ってそれをアセット サーバー キーとして設定します:
- アプリの [コミュニティ] タブの下にある [エコノミー設定] に移動するか、URL
https://partner.steamgames.com/apps/economy/{YourAppID}
に移動します - [アセット サーバー キー] フィールドが表示されるまでスクロールし、パブリッシャー Web API キーを追加します。
手順 4: PlayFab アイテムを作成してマップする
Steam アプリに対してインベントリ サービスが有効化され、アイテム定義がアップロードされたので、次はゲーム マネージャーに移動してアイテムを構成します。
新しいアイテムの作成の詳細については、Microsoft のドキュメントを参照してください。
アイテムが作成されたら、このアイテムを新しい (または既存の) バンドルに追加する必要があります。 バンドルを初めて作成する場合は、新しいバンドルの作成とバンドルへのアイテムの追加に関する情報について、Microsoft のチュートリアル「Google Play ストアから購入できる PlayFab バンドルを設定する」を参照してください。
アイテムとバンドルが作成されたら、バンドルを Steam に送信したアイテム定義にリンクする必要があります。 これを行うには、アイテム定義 JSON でアイテムに指定した itemdefid
を書き留める必要があります。
上のスクリーンショットから、アイテムの itemdefid
が 300
であることがわかります。今度は、編集モードでゲーム マネージャー内でバンドルに移動し、バンドルの [マーケットプレース マッピング] セクションまで下にスクロールする必要があります。
ここでは、Marketplace として [Steam] を選択し、Marketplace ID として「300」と入力し、[マーケットプレース ID] フィールドの横にあるプラス記号を選択して変更をロックする必要があります。 これが完了したら、いつでも保存できます。
手順 5: プレイヤーを認証する
購入したアイテムの引き換えに進む前に、そのアイテムの引き換えを希望するプレイヤーがアプリで適切に認証されていることを確認する必要があり、これを行うには LoginWithSteam を使用する必要があります。
PlayFab の LoginWithSteam
の呼び出しが成功すると、引き換え呼び出しで使用する必要がある EntityToken
を含む 200
応答が返されます。
手順 6: 購入を引き換える
Steam が設定され、PlayFab の LoginWithSteam
API を使用してプレイヤーが認証され、バンドルがアイテム定義にマップされると、Steam への引き換え呼び出しを行えるようになります。 これには、RedeemFcPlayInventoryItems API 呼び出しを使用します。
この API 呼び出しが正常に機能するには、手順 5 でプレイヤーが正常に認証された後に返された EntityToken
を API 呼び出しのヘッダーの一部として含める必要があります。
Steam での引き換えの仕組みは、RedeemSteamInventoryItems
呼び出しが行われると、Steam のすべてのインベントリを調べ、それと一致する itemdefid
探して引き換えるというものです。
成功した応答には、200
状態コードと共に、RedeemSteamInventoryItemsResponse の他のデータ パーツ (TransactionIds
など) および失敗または成功した引き換えの一覧が含まれます。
各引き換えアクションによって、プレイヤーのトランザクション履歴内の対応するイベントもトリガーされます。このログは、指定されたプレイヤーの概要ページの [トランザクション履歴 (V2)] タブから取得できます。
プレイヤーのトランザクション履歴内のレコードと共に、PlaySream イベントもトリガーされ、ログに記録されます。
ゲーム マネージャーの左側のナビゲーション バーの [分析] セクションの下にある [データ] ページ移動すると、タイトルのこれらのログにアクセスできます。 ここでは、クエリを編集して特定のレコードを検索したり、既定の設定で実行してすべてを取得したりできます。
items_redeemed
というイベント名の下にレコードが存在するはずです。
注意
複数の items_redeemed
PlaySream イベントがログに記録されている場合があります。これは、1 つのバンドルのみを引き換えた場合でも、イベント数は、各バンドル内のアイテム数に対応しているためです。
注意
「Google Play ストアから購入できる PlayFab バンドルを設定する」、「PlayFab と Apple App Store を使用してアプリ内購入を設定する」などの引き換えに関する他のチュートリアルを見たときに、それぞれ"消費"、"取引の確定" と呼ばれる、引き換え後の追加手順があることに気付くかも知れません。
Steam の場合、消費は RedeemSteamInventoryItems
API 呼び出しの実行時に行われるため、アイテムを引き換えた後に追加の手順を実行する必要はありません。 ただし、引き換えが成功すると消費が自動的に実行されるため、itemdefid
に一致するアイテムは Steam のインベントリで使用できなくなります。
手順 7: DLC とプロモーション アイテム
Steam DLC (ダウンロード コンテンツ) は、PlayFab が現在統合されていないシステムです。 アプリの所有権の観点から、開発者は Steam プロモーション ルールを使用してインベントリ アイテムを付与することをお勧めします。
つまり、RedeemSteamInventoryItems
を使用して引き換え呼び出しを行う前に、Steam クライアントからその SDK を使用して AddPromoItems を呼び出す必要があります。
AddPromoItems
は promo:owns:ID をチェックし、プレイヤー所有のアプリ (DLC など) にそれが存在することを確認します。 その場合は、プロモーション ルールで itemdefs 内のアイテムが Steam のインベントリに追加されます。 その後、引き換えにより itemdefid
と一致する Steam のインベントリ内のアイテムが追加されます。
注意
現在、サブスクリプションはサポートされていません。
注意
アイテム定義の詳細については、「ItemDef スキーマの概要」を参照してください。