From 9324e348cd886768c43542fed4daef851b13918e Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 9 Dec 2025 19:38:50 -0500 Subject: [PATCH] fix: align V4 code login with app --- roborock/web_api.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/roborock/web_api.py b/roborock/web_api.py index 4fd26cba..967ca11e 100644 --- a/roborock/web_api.py +++ b/roborock/web_api.py @@ -257,7 +257,7 @@ async def request_code_v4(self) -> None: code_response = await code_request.request( "post", "/api/v4/email/code/send", - params={"email": self._username, "type": "login", "platform": ""}, + data={"email": self._username, "type": "login", "platform": ""}, ) if code_response is None: raise RoborockException("Failed to get a response from send email code") @@ -316,12 +316,21 @@ async def code_login_v4( login_request = PreparedRequest( base_url, self.session, - {"header_clientid": header_clientid, "x-mercy-ks": x_mercy_ks, "x-mercy-k": x_mercy_k}, + { + "header_clientid": header_clientid, + "x-mercy-ks": x_mercy_ks, + "x-mercy-k": x_mercy_k, + "Content-Type": "application/x-www-form-urlencoded", + "header_clientlang": "en", + "header_appversion": "4.54.02", + "header_phonesystem": "iOS", + "header_phonemodel": "iPhone16,1", + }, ) login_response = await login_request.request( "post", "/api/v4/auth/email/login/code", - params={ + data={ "country": country, "countryCode": country_code, "email": self._username,