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.