Документация Steamworks
Интерфейс IGameNotificationsService
Интерфейс для взаимодействия с системой игровых уведомлений.

ВНИМАНИЕ: это служебный интерфейс, поэтому методы в нём должны вызываться с помощью параметра input_json.

Дополнительная информация об использовании веб-API Steamworks доступна в разделе Обзор веб-API.

CreateSession

POST https://partner.steam-api.com/IGameNotificationsService/CreateSession/v1/
НазваниеТипОбязательно?Описание
keystringКлюч веб-API Steamworks для аутентификации издателя.
appiduint32AppID, для которого необходимо создать сессию.
contextuint64Значение контекста конкретной игры, которую она использует для связи сессии с объектом на сервере.
title{message}Название сессии, показываемое в списке сессий каждого пользователя.
users{message}Начальное состояние всех игроков в сессии.
steamiduint64(необязательно) SteamID, со стороны которого делается запрос. Если он указан, пользователь должен присутствовать в сессии, а все игроки, добавленные в сессию, должны быть в списке друзей этого пользователя.

Создаёт новую асинхронную сессию в составе с игроками, указанными в запросе.

Уникальный ID сессии, возвращённый в этом вызове API, должен храниться вместе с состоянием игровой сессии, так как он будет использоваться для ссылки на другие вызовы в API уведомлений.

ВНИМАНИЕ: этот вызов требует наличие API-ключа издателя. Поэтому этот API ОБЯЗАТЕЛЬНО вызывать с защищённого сервера и ни при каких обстоятельствах не допускать его использование клиентами!

Пример ответа:
{ "response": { "sessionid": "10" } }

Пример вызова:
{ "context": "31415926" "title": { "token": "#MyToken", "variables": [ { "key": "username", "value": "SteamUser" } ] }, "users": [ { "steamid": "76561197960265729", "state": "waiting", "title": { "token": "#TitleToken", "variables": [ { "key": "username", "value": "Bob" } { "key": "level", "value": "1" } ] }, "message": { "token": "#StatusMessageToken", "variables": [ { "key": "city", "value": "Bellevue" } ] } } ] }

UpdateSession

POST https://partner.steam-api.com/IGameNotificationsService/UpdateSession/v1/
НазваниеТипОбязательно?Описание
keystringКлюч веб-API Steamworks для аутентификации издателя.
sessioniduint64SessionID, который необходимо обновить.
appiduint32AppID сессии игры, который необходимо обновить.
title{message}(необязательно) Новое название сессии. Если не указано, название не будет изменено.
users{message}(необязательно) Список пользователей, состояние которых будет обновлено для отражения актуального. Если пользователи ещё не в составе сессии, они будут в неё добавлены.
steamiduint64(необязательно) SteamID, со стороны которого делается запрос. Если он указан, пользователь должен присутствовать в сессии.

Обновляет игровую сессию при изменении состояния игры.

Обязательно обновите состояние каждого игрока соответствующим образом, поскольку всё отправленное здесь будет отражаться в уведомлениях для всех пользователей в игре. Все неуказанные игроки, присутствующие в сессии, будут из неё удалены. Все лишь недавно указанные пользователи будут добавлены в сессию. Необходимо отправить окончательное состояние сессии, которое заменит все ранее указанные состояния.

ВНИМАНИЕ: этот вызов требует наличие API-ключа издателя. Поэтому этот API ОБЯЗАТЕЛЬНО вызывать с защищённого сервера и ни при каких обстоятельствах не допускать его использование клиентами!

Пример ответа:
{ "response": { } }

Пример вызова:
{ "sessionid": "1234", "title": { "token": "#MyToken", "variables": [ { "key": "username", "value": "SteamUser" } ] }, "users": [ { "steamid": "76561197960265729", "state": "waiting", "title": { "token": "#TitleToken", "variables": [ { "key": "username", "value": "Bob" } { "key": "level", "value": "1" } ] }, "message": { "token": "#StatusMessageToken", "variables": [ { "key": "city", "value": "Bellevue" } ] } }, { "steamid": "76561197960265730", "state": "waiting", "title": { "token": "#TitleToken", "variables": [ { "key": "username", "value": "Greg" } { "key": "level", "value": "2" } ] }, "message": { "token": "#StatusMessageToken", "variables": [ { "key": "city", "value": "Seattle" } ] } } ] }

EnumerateSessionsForApp

GET https://partner.steam-api.com/IGameNotificationsService/EnumerateSessionsForApp/v1/
НазваниеТипОбязательно?Описание
keystringКлюч веб-API Steamworks для аутентификации издателя.
appiduint32SessionID, о котором необходимо запросить информацию. Опционально. Если не указан, все пользовательские сессии будут возвращены.
steamiduint64Пользователь, сессии которого необходимо подсчитать.
include_all_user_messagesbool(необязательно) Устанавливает, включать ли сообщение для всех пользователей. По умолчанию — false.
include_auth_user_messagebool(необязательно) Устанавливает, включать ли сообщение для аутентифицированного пользователя. По умолчанию — false.
languagestring(необязательно) Язык для локализации текста.

Возвращает список сессий, в составе которых находится SteamID.

Если установлены, необязательные булевые параметры include_all_user_messages и include_auth_user_message вернут дополнительную информацию о каждой сессии.

ВНИМАНИЕ: этот вызов требует наличие API-ключа издателя. Поэтому этот API ОБЯЗАТЕЛЬНО вызывать с защищённого сервера и ни при каких обстоятельствах не допускать его использование клиентами!

Пример ответа:
{ "response": { [ { "sessionid": "123", "appid": "100", "title": { "token": "#TitleToken", "variables": [ { "key": "keyName", "value": "keyValue" } ] }, "time_created": "100000", // Unix time "time_updated": "200000", //Unix time "user_status": [ { "steamid": "76561197960265729", "state": "waiting", "title": { "token": "#TitleToken", "variables": [ { "key": "username", "value": "Bob" } { "key": "level", "value": "1" } ] }, "message": { "token": "#StatusMessageToken", "variables": [ { "key": "city", "value": "Bellevue" } ] } }, { "steamid": "76561197960265730", "state": "waiting", "title": { "token": "#TitleToken", "variables": [ { "key": "username", "value": "Greg" } { "key": "level", "value": "2" } ] }, "message": { "token": "#StatusMessageToken", "variables": [ { "key": "city", "value": "Seattle" } ] } } ] } }

Пример вызова:
{ "steamid": "76561197960265729", "include_all_user_messages": "0", "include_auth_user_message": "1" }

GetSessionDetailsForApp

GET https://partner.steam-api.com/IGameNotificationsService/GetSessionDetailsForApp/v1/
НазваниеТипОбязательно?Описание
keystringКлюч веб-API Steamworks для аутентификации издателя.
sessions{message}Сессии, информацию о которых необходимо получить
appiduint32AppID сессий.
languagestringЯзык для локализации текста.

Возвращает информацию о конкретных сессиях.

ВНИМАНИЕ: этот вызов требует наличие API-ключа издателя. Поэтому этот API ОБЯЗАТЕЛЬНО вызывать с защищённого сервера и ни при каких обстоятельствах не допускать его использование клиентами!

Пример ответа:
{ "response": { [ { "sessionid": "12", "appid": "100", "title": { "token": "#TitleToken", "variables": [ { "key": "keyName", "value": "keyValue" } ] }, "time_created": "100000", // Unix time "time_updated": "200000", //Unix time "user_status": [ { "steamid": "76561197960265729", "state": "waiting", "title": { "token": "#TitleToken", "variables": [ { "key": "username", "value": "Bob" } { "key": "level", "value": "1" } ] }, "message": { "token": "#StatusMessageToken", "variables": [ { "key": "city", "value": "Bellevue" } ] } }, { "steamid": "76561197960265730", "state": "waiting", "title": { "token": "#TitleToken", "variables": [ { "key": "username", "value": "Greg" } { "key": "level", "value": "2" } ] }, "message": { "token": "#StatusMessageToken", "variables": [ { "key": "city", "value": "Seattle" } ] } } ] } }

Пример вызова:
{ "sessions": [ { "sessionid": "12", "include_all_user_messages": "0" }, { "sessionid": "13", "include_all_user_messages": "0" } ] }

RequestNotifications

POST https://partner.steam-api.com/IGameNotificationsService/RequestNotifications/v1/
НазваниеТипОбязательно?Описание
keystringКлюч веб-API Steamworks для аутентификации издателя.
steamiduint64SteamID, для которого необходимо запросить уведомления.
appiduint32SteamID, для которого необходимо запросить уведомления.

Запрашивает получение пользователем игровых уведомлений приложения.

При запуске пользователем игры, требующей уведомлений, сервер должен сделать вызов RequestNotifications для вошедшего в аккаунт пользователя. Это зарегистрирует игру для использования офлайн-уведомлений, предложив пользователю выбрать получение уведомлений для вашей конкретной игры. Вызов должен делаться не более одного раза за игру. Последующие вызовы больше не будут предлагать пользователю получение уведомлений, если он ранее от них отказался.

ВНИМАНИЕ: этот вызов требует наличие API-ключа издателя. Поэтому этот API ОБЯЗАТЕЛЬНО вызывать с защищённого сервера и ни при каких обстоятельствах не допускать его использование клиентами!

Пример ответа:
{ "response": { } }

Пример вызова:
{ "steamid": "76561197960265729", "appid": 480 }

DeleteSession

POST https://partner.steam-api.com/IGameNotificationsService/DeleteSession/v1/
НазваниеТипОбязательно?Описание
keystringКлюч веб-API Steamworks для аутентификации издателя.
sessioniduint64SessionID, который необходимо удалить.
appiduint32AppID сессии игры, который необходимо удалить.
steamiduint64(необязательно) SteamID, со стороны которого делается запрос. Если он указан, пользователь должен присутствовать в сессии.

Удаляет активную асинхронную игровую сессию. Удалит все уведомления для всех участников игровой сессии.

ВНИМАНИЕ: этот вызов требует наличие API-ключа издателя. Поэтому этот API ОБЯЗАТЕЛЬНО вызывать с защищённого сервера и ни при каких обстоятельствах не допускать его использование клиентами!

Пример ответа:
{ "response": { } }

Пример вызова:
{ "sessionid": "10" }

DeleteSessionBatch

POST https://partner.steam-api.com/IGameNotificationsService/DeleteSessionBatch/v1/
НазваниеТипОбязательно?Описание
keystringКлюч веб-API Steamworks для аутентификации издателя.
sessioniduint64SessionID, который необходимо удалить.
appiduint32AppID сессии, который необходимо удалить.

Удаляет партию асинхронных игровых сессий

ВНИМАНИЕ: этот вызов требует наличие API-ключа издателя. Поэтому этот API ОБЯЗАТЕЛЬНО вызывать с защищённого сервера и ни при каких обстоятельствах не допускать его использование клиентами!