WardenCoredocs
APIЭндпоинты

Привязка Discord

Привязка и отвязка Discord-аккаунта игрока к его Steam-идентичности.

Управление связкой Steam ↔ Discord, которую сервер хранит для игрока. Привязка питает принцип «Discord рядом со Steam»: ответы по игрокам, модерации и владельцам объектов возвращают привязанный discord_id рядом со steam_id (null, если игрок не привязан).

POST /v1/players/{ref}/discord

Привязать Discord-аккаунт к Steam-игроку.

Скоуп: players:link.

{ref} здесь должен быть Steam64 — вы привязываете Discord id к Steam-идентичности, поэтому discord:-реф отклоняется (400 validation_error).

ПолеТипЗначение
discord_idстрока (17–20 цифр)Snowflake привязываемого Discord-аккаунта.
POST /v1/players/76561198000000000/discord
Content-Type: application/json

{ "discord_id": "123456789012345678" }

Возвращает игрока в новом, привязанном состоянии:

{ "player": { "steam_id": "76561198000000000", "discord_id": "123456789012345678" } }

Steam-игрок должен уже существовать на сервере (хотя бы раз зайти). Привязка Steam id, у которого уже есть Discord, — или Discord id, уже привязанного к другому Steam, — это 409 conflict.

DELETE /v1/players/{ref}/discord

Отвязать Discord игрока. Без тела. {ref} может быть Steam64 или discord:-идентификатором.

{ "player": { "steam_id": "76561198000000000", "discord_id": null } }

Идемпотентность и форма ref

По Steam64-рефу отвязка идемпотентна — отвязка уже отвязанного игрока всё равно вернёт 200. По discord:-рефу — нет: после отвязки этот Discord id больше не резолвится ни в кого, поэтому повтор вернёт 404 not_found. Для безопасных по повтору отвязок адресуйте игрока по Steam64.

Ошибки

Стандартный конверт ошибок.

КодСтатусКогда
insufficient_scope403У ключа нет players:link.
validation_error400Некорректный discord_id или discord:-реф на роуте привязки (POST).
not_found404У Steam id нет записи на сервере (не заходил) или discord:-реф не резолвится в привязанного игрока.
conflict409Steam id уже привязан к Discord, или Discord id уже привязан к другому Steam (сообщение — в error.message).
server_unavailable503Игровой сервер офлайн или недоступен.
gateway_timeout504Сервер не ответил вовремя.

Содержание