هذا هو وثائق لبرنامج APIs REST المستخدمة لتطبيق Nintendo Switch ، وتطبيق ويب Splatoon 2 المدمج.
تم إجراء جميع الاختبارات على iPhone 7 تشغيل iOS 10.3.3 باستخدام الإصدار 1.0.4 من تطبيق Nintendo Switch على 07/30/17. أنا عكس الهندسة باستخدام mitmproxy. كان الأمر سهلاً للغاية لأن التطبيق لا يستخدم استنشاق الشهادات على الإطلاق. لم أختبر استخدام تطبيق Android على الإطلاق ، لكنني أفترض أن كل شيء متطابق (إلى جانب اختلافات وكيل المستخدم الواضحة). أنا أستخدم حساب أمريكي مع اللغة التي تم تعيينها على اللغة الإنجليزية. قد تكون هناك اختلافات صغيرة للمناطق الأخرى.
يتم تضمين مشروع PAW لمستخدمي MacOS والذي يجب أن يساعد في العبث باستخدام واجهة برمجة التطبيقات. أوصي بشدة بتجربة ذلك أولاً لمعرفة كيفية عمل واجهة برمجة التطبيقات. ألقِ نظرة على متغيرات البيئة لترى ما تحتاج إلى ملءه. بمجرد ملء Client ID ، Login Page Token Code ، Login Page Token Code Verifier ، وعيد Birthday يمكنك تنفيذ طلبات AUTH بالترتيب ويجب أن تكون جيدًا للذهاب.
ملاحظة: أوصي بتعيين User-Agent على جميع الطلبات إلى API Splatoon 2 إلى السلسلة التالية للمزج. لا يبدو أن هناك أي فحص لهذا ولكن أفضل من آسف. 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= BudapState هنا] & redirect_uri = [... يستمر]
ليس لدي أي فكرة حاليًا عن كيفية إنشاء عنوان URL هذا. أوصي بالتوقيع على تطبيق Switch ، ثم قم بتسجيل الدخول وافتح ارتباط تدفق الإشارة في Safari. يمكنك بعد ذلك فتحه على جهاز الكمبيوتر الخاص بك والمتابعة من هناك.
بمجرد تسجيل الدخول ، سيتم إعادة توجيهك إلى صفحة مثل npf71b963c1b7b6d119://auth#session_state=[SessionStateReturnedHere]&session_token_code=[codehere]&state=[StateReturnedHere]
استخراج session_state والدولة من عنوان URL هذا ، وطلب من post /connect/1.0.0/api/session_token
تقديم طلب إلى post /connect/1.0.0/api/token باستخدام session_token من 2.
تقديم طلب لنشر/V1/حساب/تسجيل الدخول. استخدم id_token من 3.
استخدم رمز الوصول الخاص بك لاسترداد قائمة الألعاب من GET/V1/Game/ListWebServices. استخدم webApiServerCredential["accesstoken"] من 4.
تقديم طلب للحصول على/v1/game/getWebserviceToken. استخدم معرف Splatoon 2 من 5 و webApiServerCredential["accesstoken"] من 4.
تقديم طلب للحصول على /. استخدم accessToken من 6.
يمكنك الآن تقديم أي طلب من API Splatoon 2 باستخدام ملف تعريف الارتباط الذي تم استرداده من 7. استمتع!