Ini adalah dokumentasi API REST yang digunakan untuk aplikasi Nintendo Switch, dan Aplikasi Web Splatoon 2 tertanam.
Semua pengujian dilakukan pada iPhone 7 yang menjalankan iOS 10.3.3 menggunakan versi 1.0.4 dari aplikasi Nintendo Switch pada 07/30/17. Saya direkayasa terbalik menggunakan mitmproxy. Itu cukup mudah karena aplikasi tidak menggunakan sertifikat sama sekali. Saya belum menguji menggunakan aplikasi Android sama sekali, tetapi saya akan berasumsi bahwa semuanya identik (selain perbedaan agen pengguna yang jelas). Saya menggunakan akun AS dengan bahasa yang diatur ke bahasa Inggris. Mungkin ada perbedaan kecil untuk daerah lain.
Proyek PAW disertakan untuk pengguna MacOS yang seharusnya membantu mengutak -atik API. Saya sangat merekomendasikan untuk mencoba ini terlebih dahulu untuk mencari tahu bagaimana API bekerja. Lihatlah variabel lingkungan untuk melihat apa yang perlu Anda isi. Setelah Anda mengisi Client ID , Login Page Token Code , Login Page Token Code Verifier , dan Birthday Anda dapat menjalankan permintaan auth secara berurutan dan Anda harus baik untuk pergi.
Catatan: Saya sarankan mengatur User-Agent pada semua permintaan ke API Splatoon 2 ke string berikut untuk berbaur. Tampaknya tidak ada pemeriksaan untuk ini tetapi lebih baik aman daripada menyesal. Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60
Jika Anda ingin tahu tentang komponen open source yang digunakan dalam aplikasi, saya telah menyusunnya di sini.
Halaman ini adalah halaman HTML yang memuat aliran auth yang biasanya Anda lihat terlebih dahulu saat masuk ke aplikasi. Ikuti melalui aliran dengan masuk dengan akun.
https://accounts.nintendo.com/connect/1.0.0/authorize?state= mediastate di sini] & redirect_uri = [... berlanjut]]
Saat ini saya tidak tahu bagaimana URL ini dihasilkan. Saya merekomendasikan untuk keluar dari aplikasi Switch, lalu masuk kembali dan buka tautan aliran tanda di Safari. Anda kemudian dapat membukanya di komputer Anda dan mengikuti dari sana.
Setelah Anda masuk, Anda akan dialihkan ke halaman seperti npf71b963c1b7b6d119://auth#session_state=[SessionStateReturnedHere]&session_token_code=[codehere]&state=[StateReturnedHere]
Ekstrak session_state dan status dari url itu, dan minta dari pos /connect/1.0.0/api/session_token
Buat permintaan untuk memposting /connect/1.0.0/api/token menggunakan session_token dari 2.
Buat permintaan untuk memposting/v1/akun/login. Gunakan id_token dari 3.
Gunakan token akses Anda untuk mengambil daftar game dari GET/V1/Game/ListWebServices. Gunakan webApiServerCredential["accesstoken"] dari 4.
Buat permintaan untuk mendapatkan/v1/gim/getwebservicetoken. Gunakan ID dari Splatoon 2 dari 5 dan webApiServerCredential["accesstoken"] dari 4.
Buat permintaan untuk mendapatkan /. Gunakan accessToken dari 6.
Anda sekarang dapat membuat permintaan apa pun dari API Splatoon 2 menggunakan cookie yang diambil dari 7. Bersenang -senang!