Il s'agit de la documentation des API REST utilisées pour l'application Nintendo Switch et de l'application Web Splatoon 2 intégrée.
Tous les tests ont été effectués sur un iPhone 7 exécutant iOS 10.3.3 en utilisant la version 1.0.4 de l'application Nintendo Switch le 30/07/17. J'ai inversé en utilisant mitmproxy. C'était assez facile car l'application n'utilise pas du tout le certificat. Je n'ai pas du tout testé à l'aide de l'application Android, mais je suppose que tout est identique (en plus des différences évidentes d'agent utilisateur). J'utilise un compte américain avec la langue définie en anglais. Il peut y avoir de petites différences pour d'autres régions.
Un projet PAW est inclus pour les utilisateurs de MacOS, ce qui devrait aider à bricoler l'API. Je recommande fortement d'essayer d'abord pour comprendre comment fonctionne l'API. Jetez un œil aux variables d'environnement pour voir ce que vous devez remplir. Une fois que vous remplissez Client ID , Login Page Token Code , Login Page Token Code Verifier et Birthday , vous pouvez exécuter les demandes d'automne dans l'ordre et vous devriez être prêt à partir.
Remarque: Je recommande de définir l' User-Agent sur toutes les demandes de l'API Splatoon 2 à la chaîne suivante pour se fondre. Il ne semble pas y avoir de vérification pour cela, mais mieux en toute sécurité que désolé. Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60
Si vous êtes curieux des composants open source utilisés dans l'application, je les ai compilés ici.
Cette page est une page HTML qui charge le flux d'automne que vous verriez normalement en premier lors de la connexion à l'application. Suivez le flux en vous connectant avec un compte.
https://accounts.nintendo.com/connect/1.0.0/authorize?state=_State ici] & redirect_uri = [... continue]
Je n'ai actuellement aucune idée de la génération de cette URL. Je recommande de signer l'application Switch, puis de me connecter et d'ouvrir le lien de flux de signe dans Safari. Vous pouvez ensuite l'ouvrir sur votre ordinateur et suivre à partir de là.
Une fois que vous vous connectez, vous serez redirigé vers une page comme npf71b963c1b7b6d119://auth#session_state=[SessionStateReturnedHere]&session_token_code=[codehere]&state=[StateReturnedHere]
Extraire la session_state et l'état de cette URL, et demandez-vous de Post /Connect/1.0.0/API/Session_Token
Faites une demande de poster /connect/1.0.0/api/token utilisant session_token à partir de 2.
Faites une demande de publication / v1 / compte / connexion. Utilisez id_token de 3.
Utilisez votre jeton d'accès pour récupérer la liste des jeux à partir de Get / V1 / Game / ListWebservices. Utilisez webApiServerCredential["accesstoken"] à partir de 4.
Faites une demande pour obtenir / V1 / Game / GetWebServiceToken. Utilisez l'ID de Splatoon 2 à partir de 5 et webApiServerCredential["accesstoken"] à partir de 4.
Faites une demande pour obtenir /. Utilisez le accessToken à partir de 6.
Vous pouvez maintenant faire n'importe quelle demande de l'API Splatoon 2 en utilisant le cookie récupéré à partir de 7. Amusez-vous!