這是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中提出任何請求。玩得開心!