Documentação do Steamworks
OAuth
O protocolo OAuth permite que sites e aplicativos de parceiros em plataformas integradas realizem certas ações em nome de usuários Steam autenticados de forma segura.

Para fazer uso do OAuth, primeiro você precisará obter um ID de cliente da Valve. Consulte a seção Primeiros passos para mais detalhes.

Algumas APIs do OAuth também exigem uma chave da distribuidora da WebAPI para validar a sua identidade como parceiro Steam. Essas APIs só podem ser chamadas a partir dos seus servidores, já que a chave não pode ser compartilhada com clientes. APIs que exigem a chave da distribuidora são as que recebem o parâmetro key.

Serviços da WebAPI com métodos compatíveis com OAuth incluem: ICloudService, IBroadcastService, IGameNotificationsService, IPlayerService e IPublishedFileService.

Para ilustrar os exemplos, http://uri/de/redirecionamento será usado para representar o URI de redirecionamento.

Primeiros passos


A implementação do Steam se baseia na especificação OAuth 2.0.
Durante a configuração inicial, você precisará informar os seguintes dados para a Valve:
  • Quais permissões você precisa solicitar ao usuário. As permissões necessárias para cada serviço estão listadas abaixo. Note that if you are not planning on supporting cross-platform Cloud sync or Workshop support, we will not provide you with a Client ID.
  • O tempo de validade do token.
  • O URI de redirecionamento, para levar o usuário de volta ao seu site depois de concluir a autenticação/autorização.
Como resposta, a Valve concederá um ID de cliente para a sua implementação.

Para autenticar um usuário, redirecione-o para o URL

https://steamcommunity.com/oauth/login?response_type=token&client_id=id_de_cliente_aqui&state=o_que_quiser

Aconselhamos adicionar o parâmetro &mobileminimal=1 à requisição acima em navegadores integrados. Esse parâmetro removerá parte da interface de navegação do site do Steam irrelevante quando a página de autorização do OAuth for apresentada ao usuário de dentro do jogo.

Caso o parâmetro state seja incluído, ele será retornado no URI de redirecionamento depois que o usuário conceder ou recusar o acesso. Note that the authorization code grant type is also supported, by using the response_type=code during login.

Caso o usuário conceda o acesso, ele será redirecionado para o seu site com os seguintes parâmetros:

http://uri/de/redirecionamento#access_token=token_aqui&token_type=steam&steamid=id_do_usuario_aqui&state=o_que_quiser

O token deve ser tratado como uma cadeia arbitrária de caracteres. Atualmente, os tokens são cadeias de 32 caracteres hexadecimais, mas isso está sujeito a alterações. Esta API também inclui um parâmetro steamid em desuso e que deve ser ignorado. Consulte abaixo a seção Recuperação do ID Steam do usuário para saber como fazê-lo de modo seguro.

Caso o usuário negue o acesso, ele será redirecionado para o seu site com os seguintes parâmetros:

http://uri/de/redirecionamento#error=access_denied&state=o_que_quiser

Observe que a resposta (incluindo o token) é incluída no fragmento do URI, então ela precisará ser acessada do lado do cliente e repassada ao servidor se precisar fazer requisições do lado do servidor.

Depois de obter o token do usuário, você pode começar a realizar requisições à API como documentado abaixo.
Exceto quando observado o contrário, requisições devem usar o método HTTP POST, ser apresentadas em formato de dados de formulário e definir o seguinte cabeçalho:

Content-Type: application/x-www-form-urlencoded

Recuperação do ID Steam do usuário

Depois de obter o token OAuth de um usuário, você pode realizar uma chamada entre servidores para o método abaixo para obter, de forma segura, o ID Steam do usuário associado ao token:

https://api.steampowered.com/ISteamUserOAuth/GetTokenDetails/v1/?access_token=token

Acesso à Nuvem Steam


Para acessar a Nuvem Steam como um usuário, o cliente OAuth precisará das permissões read_cloud e/ou write_cloud.
Essas permissões são concedidas por AppID, então não se esqueça de especificar os AppIDs que devem ser incluídos durante a criação do ID de cliente.

Depois de obter o token OAuth, use a WebAPI do Steam ICloudService.

Acesso à Oficina Steam


Para acessar a Oficina Steam como um usuário, o cliente OAuth precisará das permissões read_cloud e/ou write_cloud.
Essas permissões são concedidas por AppID, então não se esqueça de especificar os AppIDs que devem ser incluídos durante a criação do ID de cliente.

Depois de obter o token OAuth, use a WebAPI do Steam IPublishedFileService.