Esta é a documentação das APIs restantes usadas para o aplicativo Nintendo Switch e aplicativo Web Splatoon 2 incorporado.
Todos os testes foram feitos em um iPhone 7 executando o iOS 10.3.3 usando a versão 1.0.4 do aplicativo Nintendo Switch em 30/07/17. Eu me engenhei usando mitmproxy. Foi muito fácil, pois o aplicativo não usa o certificado de certificação. Não testei usando o aplicativo Android, mas presumo que tudo seja idêntico (além de diferenças óbvias de agente de usuário). Estou usando uma conta dos EUA com o idioma definido para o inglês. Pode haver pequenas diferenças para outras regiões.
Um projeto PAW está incluído para os usuários do MacOS, o que deve ajudar a mexer na API. Eu recomendo tentar primeiro descobrir como a API funciona. Dê uma olhada nas variáveis de ambiente para ver o que você precisa preencher. Depois de preencher Client ID , Login Page Token Code , Login Page Token Code Verifier e Birthday e você pode executar as solicitações de autenticação em ordem e deve estar pronto para ir.
NOTA: Eu recomendo definir o User-Agent em todas as solicitações para a API Splatoon 2 para a string a seguir para se misturar. Parece que não há verificação para isso, mas é melhor do que remediar. Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60
Se você está curioso sobre os componentes de código aberto usados no aplicativo, eu os compilei aqui.
Esta página é uma página HTML que carrega o fluxo de autenticação que você normalmente veria primeiro ao fazer login no aplicativo. Siga através do fluxo logando com uma conta.
https://accounts.nintendo.com/connect/1.0.0/authorize?state=[state aqui] & redirect_uri = [... continua]
Atualmente, não tenho idéia de como esse URL é gerado. Eu recomendo a assinatura do aplicativo Switch, depois inscreva -se e abra o link do fluxo de sinais no Safari. Você pode abri -lo no seu computador e seguir a partir daí.
Depois de fazer login, você será redirecionado para uma página como npf71b963c1b7b6d119://auth#session_state=[SessionStateReturnedHere]&session_token_code=[codehere]&state=[StateReturnedHere]
Extraia o session_state e o estado desse URL, e solicite do post /connect/1.0.0/api/session_token
Faça uma solicitação para postar /connect/1.0.0/api/token usando session_token de 2.
Faça uma solicitação para postar/v1/conta/login. Use id_token de 3.
Use seu token de acesso para recuperar a lista de jogos da get/v1/game/listWebServices. Use webApiServerCredential["accesstoken"] de 4.
Faça uma solicitação para obter/v1/game/getwebServiceteken. Use o ID do Splatoon 2 de 5 e webApiServerCredential["accesstoken"] de 4.
Faça uma solicitação para obter /. Use o accessToken de 6.
Agora você pode fazer qualquer solicitação da API Splatoon 2 usando o cookie recuperado de 7. Divirta -se!