これは、Nintendo Switchアプリに使用されるREST APIのドキュメントであり、Splatoon 2 Webアプリを組み込んでいます。
すべてのテストは、07/30/17のNintendo Switchアプリのバージョン1.0.4を使用して、iOS 10.3.3を実行しているiPhone 7で行われました。 mitmproxyを使用してリバースエンジニアリングしました。アプリはまったく証明書を使用していないため、非常に簡単でした。 Androidアプリを使用してテストしていませんが、すべてが同一であると仮定します(明らかなユーザーエージェントの違いを除く)。私は言語を英語に設定した米国アカウントを使用しています。他の地域には小さな違いがあるかもしれません。
APIをいじくり回すのに役立つはずのMACOSユーザーにPAWプロジェクトが含まれています。 APIがどのように機能するかを把握するために、これを最初に試してみることを強くお勧めします。環境変数を見て、入力する必要があるものを確認します。 Client IDに記入したら、 Login Page Token Code 、 Login Page Token Code Verifier 、 Birthdayに順番にAUTHリクエストを実行できます。
注:すべてのリクエストで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
アプリで使用されているオープンソースコンポーネントに興味がある場合は、ここにまとめました。
このページは、アプリにログインするときに最初に表示されるAuth FlowをロードするHTMLページです。アカウントでログインして、フローをフォローしてください。
https://accounts.nintendo.com/connect/1.0.0/authorize?state= [State here]&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/api/session_tokenからリクエスト
2からのsession_tokenを使用して、/connect/1.0.0/api/tokenを投稿するリクエストを行います。
/v1/account/loginを投稿するリクエストを行います。 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からリクエストを行うことができます。楽しんでください!