Open Ya-chunJen opened 1 year ago
我也遇到了同样的问题
miaccount.py中:
56行_serviceLogin(f"serviceLogin?sid={sid}&_json=true")
返回“登陆验证失败”,
走到67行_serviceLogin("serviceLoginAuth2", data)
,这里返回了一个没有数据的code=0(如下),之后就报错了。
{
'notificationUrl': '/identity/authStart?sid=xiaomiio&context=xxxxxx&_locale=zh_CN',
'result': 'ok',
'code': 0,
'captchaUrl': None,
'description': '成功',
'location': '',
'securityStatus': 16,
'pwd': 0,
'child': 0,
'desc': '成功'
}
环境:国内腾讯云、CentOS7、Python3.9
关联issue:
我的这个问题解决了,修改了一下小米账号的密码,之前有特殊字符,修改为只包含字符和数字就可以了。
有字母的也不认吗
密码里有字母
这是一个显然存在很大BUG的问题,需要作者纠正啊
解决方法:
拿到类似这样的输出
{'notificationUrl': '/identity/authStart?sid=xiaomiio&context=wDILiZe6yVI_DvJbvAz_F4_8LXyuoTar-odx0H0FyIvaYXRxxxxx9BUuGPfyyRhogXWOwxxxxxxZNajJd0mnxxxxxx1ZptsXnXBxxxxxxfSmV_mQnew3i-tofXCVQ_P80fJ4xxf20Bl-t95zHZeqYeuDxxrGYxT2mxxOkQZQSxxAJTYjy-sg6WpVkH8AaGexxxxxxxNMXrvjWjWCfTfY9ipdTMWa0_UgmbFSUJmOX-Exxxxs5b_C4IBXHkIR1sk-EAC3ZDeawj_o5Zg&_locale=zh_CN', 'result': 'ok', 'code': 0, 'captchaUrl': None, 'description': '成功', 'location': '', 'securityStatus': 16, 'pwd': 0, 'child': 0, 'desc': '成功'}
复制notificationUrl拼接上https://account.xiaomi.com/pass/serviceLoginAuth2
得到:
https://account.xiaomi.com/pass/serviceLoginAuth2/identity/authStart?sid=xiaomiio&context=xxxxxx
这样的链接,复制到你的浏览器上打开即可手机短信等验证,验证通过后再次使用即可正常
解决方法:
拿到类似这样的输出
{'notificationUrl': '/identity/authStart?sid=xiaomiio&context=wDILiZe6yVI_DvJbvAz_F4_8LXyuoTar-odx0H0FyIvaYXRxxxxx9BUuGPfyyRhogXWOwxxxxxxZNajJd0mnxxxxxx1ZptsXnXBxxxxxxfSmV_mQnew3i-tofXCVQ_P80fJ4xxf20Bl-t95zHZeqYeuDxxrGYxT2mxxOkQZQSxxAJTYjy-sg6WpVkH8AaGexxxxxxxNMXrvjWjWCfTfY9ipdTMWa0_UgmbFSUJmOX-Exxxxs5b_C4IBXHkIR1sk-EAC3ZDeawj_o5Zg&_locale=zh_CN', 'result': 'ok', 'code': 0, 'captchaUrl': None, 'description': '成功', 'location': '', 'securityStatus': 16, 'pwd': 0, 'child': 0, 'desc': '成功'}
复制notificationUrl拼接上https://account.xiaomi.com/pass/serviceLoginAuth2 得到: https://account.xiaomi.com/pass/serviceLoginAuth2/identity/authStart?sid=xiaomiio&context=xxxxxx 这样的链接,复制到你的浏览器上打开即可手机短信等验证,验证通过后再次使用即可正常
改了还是错误怎办。
解决方法:
拿到类似这样的输出
{'notificationUrl': '/identity/authStart?sid=xiaomiio&context=wDILiZe6yVI_DvJbvAz_F4_8LXyuoTar-odx0H0FyIvaYXRxxxxx9BUuGPfyyRhogXWOwxxxxxxZNajJd0mnxxxxxx1ZptsXnXBxxxxxxfSmV_mQnew3i-tofXCVQ_P80fJ4xxf20Bl-t95zHZeqYeuDxxrGYxT2mxxOkQZQSxxAJTYjy-sg6WpVkH8AaGexxxxxxxNMXrvjWjWCfTfY9ipdTMWa0_UgmbFSUJmOX-Exxxxs5b_C4IBXHkIR1sk-EAC3ZDeawj_o5Zg&_locale=zh_CN', 'result': 'ok', 'code': 0, 'captchaUrl': None, 'description': '成功', 'location': '', 'securityStatus': 16, 'pwd': 0, 'child': 0, 'desc': '成功'}
复制notificationUrl拼接上https://account.xiaomi.com/pass/serviceLoginAuth2 得到: https://account.xiaomi.com/pass/serviceLoginAuth2/identity/authStart?sid=xiaomiio&context=xxxxxx 这样的链接,复制到你的浏览器上打开即可手机短信等验证,验证通过后再次使用即可正常
感谢 得到了
/fe/service/verifyPhone...
这样的resp,拼接上
https://account.xiaomi.com/fe/service/verifyPhone...
浏览器打开即可
直接登录https://account.xiaomi.com,会提示确认手机号码是否在用
运行 ./micli.py list 后,出现下面的错误: Exception on login 187****: 'userId' Traceback (most recent call last): File "/Users/renyajun/gitee/MiBot/miservice/miaccount.py", line 71, in login self.token['userId'] = resp['userId'] KeyError: 'userId' Error https://api.io.mi.com/app/home/device_list: Login failed
该怎么解决呢?之前看到有人通过取消代理解决,但是我这边操作后还是不行。