No afiliado

Inicio Documentación y ayuda
Documentación de Steamworks
Resumen de la API

Introducción

Steam tiene una Web API basada en HTTP que se puede usar para acceder a muchas características de Steamworks. La API contiene métodos públicos a los que se puede acceder desde cualquier aplicación capaz de realizar una solicitud HTTP, como un cliente de juego o un servidor. También contiene métodos protegidos que requieren autenticación y que están pensados para que accedan a ellos aplicaciones del backend.

Por ejemplo, los métodos de la Web API se usan ordinariamente por parte de un servidor seguro de editor para:
  • Verificar las credenciales de Steam de un usuario con ese servidor.
  • Comprobar si un usuario posee una aplicación concreta.
  • Establecer o recuperar las estadísticas, los logros o las puntuaciones de las tablas de clasificación de un usuario.
  • Efectuar una compra desde el juego.

Puede encontrarse una lista completa de todo lo que ofrece la Web API de Steamworks en Referencia de Web API de Steamworks.

Formato de solicitud

Para acceder a la API de Web pública de Steamworks haciendo las solicitudes del HTTP (puerto 80) y el HTTPS (puerto 443) solicitudes de api.steampowered.com.
Si eres un editor, entonces Steam también proporciona un servidor de Web API sólo para asociados en https://partner.steam-api.com. El objetivo de este servicio es tener una mayor disponibilidad que el host público; deberás usar este servicio para todas las solicitudes que hagas desde tus servidores seguros. Visita Direcciones del host de la Web API Host Addresses, consideraciones sobre los firewall para obtener más información.

De igual modo que para la API de C++ de Steamworks, la Web API se ha dividido en varias interfaces que contienen métodos relacionados. El formato URI de cada solicitud de la API es:
https://api.steampowered.com/<interface>/<method>/v<version>/

La mayoría de los métodos admiten una lista de parámetros obligatorios y opcionales. Dependiendo del método, estos parámetros deben pasarse como parámetros GET o POST en la solicitud.

Siempre que sea posible, todas las solicitudes deberán enviarse usando HTTP 1.1 y la encriptación SSL v3, de 128 bits siempre que sea posible. El Content-Type application/x-www-form-urlencoded y los parámetros POST deben constar en el cuerpo de la solicitud en formato estándar de codificación URL. El texto se transmitirá como UTF-8.

Autenticación

Muchos métodos de Web API tienen restricciones de acceso que requieren una clave única, para obtener más información consulta Autenticación mediante claves de Web API.

Parámetros de vector

Algunos métodos están diseñados para recibir un vector de parámetros. Esto se especifica con un [0] postfix en el nombre del parámetro. Cuando los parámetros de vector pasan, habrá un parámetro de la cuenta que especifica el número de parámetros de la matriz. Ejemplo:
?count=2&name[0]=SomeNameHere&name[1]=SomeOtherName

Interfaces de servicio

Además de las llamadas ordinarias a la Api, están las interfaces de servicio. Estas interfaces funcionan de manera muy similar a las interfaces ordinarias. La diferencia fundamental es que todas las API de servicio aceptan argumentos como un único blob de JSON, además de recibirlos como parámetros GET o POST. Para pasar datos como JSON, llama a el método de la API de web con el parámetro input_json establecido como:
?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&input_json={"steamid":76561197972495328}

Ten en cuenta que el JSON debe estar codificado como dirección URL. Los "campos key" y "format" deberán seguir pasándose como parámetros independientes, igual que antes. Las solicitudes POST también son compatibles.

Puedes identificar si una WebAPI es un "servicio" por el nombre de la interfaz; si termina en "servicio" como IPlayerService, entonces es compatible con este método adicional de pasar los datos paramétricos. Algunos métodos de servicios tienen parámetros que son estructuras más complejas y requieren este formato alternativo de entrada.

Ejemplo de consulta

El ejemplo siguiente recupera las 3 entradas más recientes de noticias para Team Fortress 2.
La solicitud especifica que la respuesta debe ser devuelta como JSON e incluye un parámetro necesario appid (AppID de Team Fortress 2 que es 440) y una cuenta de parámetro opcional; cuenta que limita el número de resultados devueltos.

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

Puedes ejecutar y ver los resultados de esta verificación con este enlace:
https://api.steampowered.com/ISteamNews/GetNewsForApp/v2/?appid=440&count=3

Para aprender más sobre este tema visita: ISteamNews/GetNewsForApp

Obtener el id. de Steam del usuario

La Web API de Steamworks identifica usuarios individuales usando su id. de Steam único de 64 bits. Para aprender más sobre como obtener el Id. de Steam del usuario de forma segura visita Autenticación de usuario y propiedad.

Direcciones del host de la Web API Host Addresses, consideraciones sobre los firewall

La API de Web público (api.steampowered.com) está a cargo del caché edge de Akamai, por lo cual, las direcciones IP actuales que verás tendrán nombres distintos basados en tu ubicación y en los cambios continuos del servicio. Las IP pueden cambiar de forma rápida y fluida, de modo que si tus llamadas a la Web API se llevan a cabo a través de un firewall para solicitudes externas.

Deberás utilizar el nodo sólo para asociados (https://partner.steam-api.com) para todas las solicitudes hechas desde tus servidores seguros. Este host tiene unas propiedades diferentes de las del host público:
  • Este host solo es accesible a través de HTTPS.
  • Este host no está tras la caché perimetral de Akamai.
  • Deberás ejecutar todas las solicitudes a este host con tu clave de Web API para editor, incluso aquellas que no la requieren ordinariamente. Las solicitudes hechas sin una clave de editor válida devolverán el código de error 403.
  • Las solicitudes que generen códigos de error 403 se verán sometidas a límites estrictos de velocidad para la IP que se está conectando. Esta es una forma de intentar garantizar la alta disponibilidad. Si generas un número suficiente de solicitudes dentro de un cierto intervalo de tiempo que devuelvan códigos de error 403, fuese durante las pruebas o mediante el uso de una clave de Web API ordinaria, en lugar de una de editor, el host pondrá temporalmente tu IP en una lista de denegación de servicio.
  • Si vas a hacer solicitudes a este servicio de API desde un host que tenga un filtro de firewall aplicado a las solicitudes salientes, deberás añadir la denominación DNS "partner.steam-api.com" a tu lista de permisos. Si tu Firewall solo acepta direcciones numéricas, añade el siguiente bloque CIDR para permitir la lista: 208.64.200.0/22.
    NOTA: No debes conectarte al los servidores IP del Web API; utiliza en nombre del DNS. Estas direcciones se aportan solo para aquellos clientes que necesiten pasarlas a la lista de permitidas en sus firewalls.