이것은 Nintendo Switch 앱 및 내장 된 Splatoon 2 웹 앱에 사용되는 나머지 API의 문서화입니다.
모든 테스트는 07/30/17의 Nintendo Switch 앱의 버전 1.0.4를 사용하여 iOS 10.3.3을 실행하는 iPhone 7에서 수행되었습니다. 나는 mitmproxy를 사용하여 리버스 엔지니어링했다. 앱이 Cert-Pinning을 전혀 사용하지 않기 때문에 매우 쉬웠습니다. Android 앱을 사용하여 테스트하지는 않았지만 모든 것이 동일하다고 가정합니다 (명백한 사용자 에이전트 차이 외에). 언어로 영어로 설정된 미국 계정을 사용하고 있습니다. 다른 지역에는 작은 차이가있을 수 있습니다.
MACOS 사용자를 위해 PAW 프로젝트가 포함되어있어 API에 묶는 데 도움이됩니다. API의 작동 방식을 파악하기 위해 먼저 시도해 보는 것이 좋습니다. Client ID 채우면 Login Page Token Code Login Page Token Code Verifier 및 Birthday 작성하면 신청 요청을 순서대로 실행할 수 있으므로 잘해야합니다.
참고 : Splatoon 2 API에 대한 모든 요청에서 User-Agent 다음 문자열로 설정하여 블렌딩하는 것이 좋습니다.이 점검은 없지만 미안보다 안전한 안전성이있는 것으로 보입니다. Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60
앱에 사용 된 오픈 소스 구성 요소에 대해 궁금한 점이 있다면 여기에서 컴파일했습니다.
이 페이지는 앱에 로그인 할 때 일반적으로 먼저 볼 수있는 인증 흐름을로드하는 HTML 페이지입니다. 계정으로 로그인하여 흐름을 따르십시오.
https://accounts.nintendo.com/connect/1.0.0/authorize?state= [estate here] & redirect_uri = [... 계속]
나는 현재이 URL이 어떻게 생성되는지 전혀 모른다. 스위치 앱에서 로그인 한 다음 Safari에서 로그인하여 부호 흐름 링크를 엽니 다. 그런 다음 컴퓨터에서 열고 거기에서 팔로우 할 수 있습니다.
로그인하면 npf71b963c1b7b6d119://auth#session_state=[SessionStateReturnedHere]&session_token_code=[codehere]&state=[StateReturnedHere] 와 같은 페이지로 리디렉션됩니다.
해당 URL에서 Session_state 및 State를 추출하고 Post /connect/1.0.0/api/session_token에게 요청하십시오.
session_token 사용하여 2에서 post /connect/1.0.0/api/token을 요청하십시오.
게시/v1/계정/로그인을 요청하십시오. 3에서 id_token 사용하십시오.
액세스 토큰을 사용하여 get/v1/game/listwebservices에서 게임 목록을 검색하십시오. 4에서 webApiServerCredential["accesstoken"] 사용하십시오.
/v1/game/getwebservicetoken을 요청하십시오. 5에서 Splatoon 2와 webApiServerCredential["accesstoken"] 의 ID를 4에서 사용하십시오.
/GET를 요청하십시오. 6에서 accessToken 사용하십시오.
이제 7에서 검색 한 쿠키를 사용하여 Splatoon 2 API의 요청을 할 수 있습니다. 재미있게 보내십시오!