这是Nintendo Switch应用程序中使用的REST API的文档,以及嵌入了Splatoon 2 Web应用程序。
所有测试均在运行iOS 10.3.3的iPhone 7上使用Nintendo Switch App的1.0.4版在07/30/17进行。我使用mitmproxy进行了反向工程。这很容易,因为该应用程序根本不使用证书。我根本没有使用Android应用程序进行了测试,但是我认为一切都是相同的(除了明显的用户代理差异之外)。我使用的是美国帐户的语言,该语言设置为英语。其他地区可能存在很小的差异。
MacOS用户包括一个PAW项目,这应该有助于修补API。我强烈建议您先尝试一下,以找出API的工作原理。查看环境变量以查看您需要填写的内容。一旦填写Client ID , Login Page Token Code , Login Page Token Code Verifier和Birthday ,您可以按顺序执行验证请求,您应该很好。
注意:我建议将所有请求上的User-Agent设置到Splatoon 2 API上以融合以下字符串。似乎没有对此进行任何检查,但安全比后悔更好。 Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60
如果您对应用程序中使用的开源组件感到好奇,我将其编译在此处。
此页面是一个HTML页面,该页面加载了您在登录应用程序时通常会首先看到的auth Flow。通过使用帐户登录来遵循流程。
https://accounts.nintendo.com/connect/1.0.0.0/authorize?state= [state tere]&redirect_uri = [...继续]
我目前不知道该URL是如何生成的。我建议登录Switch应用程序,然后登录并打开Safari中的标志流链接。然后,您可以在计算机上打开它,然后从那里关注。
登录后,您将被重定向到一个页面,例如npf71b963c1b7b6d119://auth#session_state=[SessionStateReturnedHere]&session_token_code=[codehere]&state=[StateReturnedHere]
从该URL提取session_state和state,并从post /connect/1.0.0.0/api/session_token提取请求
提出使用2个session_token发布/connect/1.0.0/api/token。
提出发布/v1/account/登录的请求。使用3中的id_token 。
使用您的访问令牌从get/v1/game/listWebservices检索游戏列表。从4中使用webApiServerCredential["accesstoken"] 。
请求获取/v1/game/getWebServicEtoken。从5中使用Splatoon 2的ID,并从4中webApiServerCredential["accesstoken"] 。
提出请求 /获得 /。使用6中的accessToken 。
现在,您可以使用从7中检索到的cookie从Splatoon 2 API中提出任何请求。玩得开心!