Steamworks 文献库
ILobbyMatchmakingService 接口
提供 Steam 大厅方法的访问权限。

注意:这是服务接口,此接口中的方法应使用 input_json 参数调用。

请参见Web API 概览,对如何使用 Steamworks Web API 了解更多。

CreateLobby

POST https://partner.steam-api.com/ILobbyMatchmakingService/CreateLobby/v1/
名称类型是否必需描述
keystringSteamworks Web API 用户验证密钥。
appiduint32与大厅相关联的应用程序的 ID。
max_membersint32该大厅的成员数上限。
lobby_typeint32ELobbyType - 该大厅的类型与可见性。
lobby_namestring独一无二的大厅名称(如果 lobby_type = 4 的话)。 如果存在具有此名称的大厅,找到该大厅。
input_jsonstringJson data。 对于不能是发布的参数的数据而言,必须使用,但也可用于其他参数。
steamid_invited_membersarray of uint64要为其添加空位的一列 steamID。 必须在 input_json 参数中指定。
lobby_metadatamessage可选大厅数据。 必须在 input_json 参数中指定。

lobby_metadata 属性的结构:
名称类型是否必需描述
key_namestring键名称
key_valuestring键值

使用 CreateLobby Web API 时,您可能需要将 lobby_type 设为 4(k_ELobbyTypePrivateUnique)。 该大厅类型为私人、独一无二的的大厅,清空后并不会删除,每个独一无二的 appid/lobby_name 只有一个大厅。 独一无二的私人大厅只能由此 WebAPI 调用创建。 但您也可以在不使用 lobby_name 时,用 CreateLobby 来生成更为传统、存在时间较短的大厅,

Steamid_invited_members 将会是 json 格式的数组,囊括了所有当前应该被允许加入该大厅的 steamID。 您可以使用同一个 lobby_name 及一组全新 steamID 调用 CreateLobby,以更新成员列表。 任何之前位于大厅中,但不包含在新调用中的 steamID 将会从大厅中移除。

Lobby_metadata 完全是可选的,但它可以用来发送需要在客户端中向用户传达的一般性大厅数据。

参数示例:
{ "max_members": 100, "appid": 480, "lobbytype": 4, "steamid_invited_members": [], "lobby_name" : "guild_chat_1138", "lobby_metadata": [ { "key_name" : "motd", "key_value" : "Raid at 5 PM" }, { "key_name" : "clan_id", "key_value" : "1138" }, { "key_name" : "lobbyproperty", "key_value" : "otherproperty" } ] }

响应:
  • response
    • success - 如果方法成功,为 true。
    • appid - 为其创建大厅的 AppID。
    • steamid_lobby - 大厅 ID。

RemoveUserFromLobby

POST https://partner.steam-api.com/ILobbyMatchmakingService/RemoveUserFromLobby/v1/
名称类型是否必需描述
keystringSteamworks Web API 用户验证密钥。
appiduint32与大厅相关联的应用程序的 ID。
steamid_to_removeuint64要移除的用户的 SteamID。 如果调用时该用户不在线,将会移除其在大厅中保留的空位。
steamid_lobbyuint64Lobby ID
input_jsonstringJson data。 对于不能是已发布的参数的数据而言,必须使用,但也可用于其他参数。

注意:此调用需要一个发行商 API 密钥才能使用此方法。 因此,此 API 必须通过安全服务器调用,且绝不能由客户端直接调用!

GetLobbyData

GET https://partner.steam-api.com/ILobbyMatchmakingService/GetLobbyData/v1/
名称类型是否必需描述
keystringSteamworks Web API 用户验证密钥。
appiduint32与大厅相关联的应用程序的 ID。
steamid_lobbyuint64大厅 ID。

GetLobbyData 将会返回该大厅 ID 下的任何大厅数据及成员列表。

注意:此调用需要一个发行商 API 密钥才能使用此方法。 因此,此 API 必须通过安全服务器调用,且绝不能由客户端直接调用!

响应示例:
{ "response": { "appid": 480, "lobby_type": 2, "steamid_owner": "76561197984069643", "lobby_metadata": [ { "key_name": "name", "key_value": "Olive's lobby" }, { "key_name" : "motd", "key_value" : "Raid at 5 PM" } ], "members": [ { "steamid": "76561197984069643", "member_metadata": [ { "key_name": "ready", "key_value": "1" }, { "key_name": "role", "key_value": "captain" } ] }, { "steamid": "76561197985812219", "member_metadata": [ { "key_name": "role", "key_value": "weapons" } ] } ] } }