yihong0618 / MiService

XiaoMi Cloud Service for mi.com
MIT License
364 stars 91 forks source link

Error https://api.io.mi.com/app/home/device_list: Login failed #2

Open hujinttao opened 1 year ago

hujinttao commented 1 year ago

微信截图_20230328145536

登录失败,我检查了我的小米账号和密码没问题,我打印了登录的返回值,发现没有userId,是什么情况,我的小米账号需要配置什么嘛?

codingbylch commented 1 year ago

遭遇了同样的情况。可能是没有读取到账号密码:windows需要在环境变量中设置,设置后重启终端。

jjiikkkk commented 1 year ago

我从国外服务器折腾到国内服务器,账号和密码始终连不上去

danranmmm commented 1 year ago

我也遇到同样的问题,centos

danranmmm commented 1 year ago

遭遇了同样的情况。可能是没有读取到账号密码:windows需要在环境变量中设置,设置后重启终端。

你们的问题解决了吗

jjiikkkk commented 1 year ago

他们都是用的WLS来实现的,同时用AMD的服务器,SSH以及云端的CONSOLE全部会失败 还有一种方法是小米小爱开放平台申请API,这个自己搜索一下头条

zhangzimingmmz commented 1 year ago

我也一样,用的是腾讯云的ubuntu

jjiikkkk commented 1 year ago

别试了 没用的 要WLS

jjiikkkk commented 1 year ago

我折腾了几天后来放弃了,有空再去搞WLS吧,好在我有小米小爱开放平台的API 另外不需要小米音箱,普通音箱接API也可以的

testwhite commented 1 year ago

Exception: Error https://api2.mina.mi.com/admin/v2/device_list?master=0&requestId=app_ios_7xLQmOIVBC9bqdAaTrhe0MFyPop41j: Login failed 一样的手机正常登录,这个无法使用。也不知道为啥,window可以正常获取。

testwhite commented 1 year ago

image

litianc commented 1 year ago

海外ip环境下执行micli list出现同样报错,resp返回值里没有userId。切换到国内ip,返回正常,获取到设备信息。希望对遇到同样问题的人有帮助

jjiikkkk commented 1 year ago

没觉得国内的一样通不过

jjiikkkk commented 1 year ago

我还要去做WLS吗 好累啊 心累

litianc commented 1 year ago

WLS是什么? @jjiikkkk

testwhite commented 1 year ago

敢问大佬能不能把这个项目封装成.exe这样就省事多了。环境问题真是永远的坑

6vision commented 1 year ago

本地笔记本的wls可以执行到唤醒说出问题,但连不上openai,我配置了系统代理(微信机器人就可以正常连接使用)!用阿里云国内的服务器也是到这一步,再用国外的Azure服务器,就报错了login faild/////////怎么解决 image

tuihou123321 commented 1 year ago

我也报错了

Cannot connect to host sts.api.io.mi.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)')]

woiweb commented 1 year ago

同问,macos,在公司电脑上安装的时候OK,在家里的电脑就不行了,方式都一样

aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host sts.api.io.mi.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)')] Error https://api.io.mi.com/app/home/device_list: Login failed

woiweb commented 1 year ago

Problem solved,you should reinstall the cerfificate,the comman as follow:

Navigate to cd /Applications/Python\ 3.7/

Click on Install Certificates.command

This should solve it.

refer to:https://github.com/aio-libs/aiohttp/issues/955#issuecomment-509119559

OnlyTL commented 1 year ago

他们都是用的WLS来实现的,同时用AMD的服务器,SSH以及云端的CONSOLE全部会失败 还有一种方法是小米小爱开放平台申请API,这个自己搜索一下头条

这个申请API怎么使用,我认证了开放平台,但是不知道怎么弄

jiangyanfeng commented 1 year ago

微信截图_20230328145536

登录失败,我检查了我的小米账号和密码没问题,我打印了登录的返回值,发现没有userId,是什么情况,我的小米账号需要配置什么嘛?

这个是因为海外登录,触发了双重验证。错误消息中的URL就是双重验证要求访问的地址。访问这个地址会先排除你是否是机器人,然后再给你的安全手机发一个短信验证码,短信验证码通过后,当前登录使用的IP才会到白名单上,下次不会再触发双重验证。

坑爹的是,在国内的服务器上,小米登录没问题,但访问 openai 有问题(搭梯子或使用代理都不方便)。在国外的服务器上,访问 openai 没问题了,但小米登录又触发双重验证了。这个双重验证目前必须人工进行。

chaoqunxie commented 1 year ago

你解决了么,我也遇到同样的报错

chaoqunxie commented 1 year ago

微信截图_20230328145536

登录失败,我检查了我的小米账号和密码没问题,我打印了登录的返回值,发现没有userId,是什么情况,我的小米账号需要配置什么嘛?

参考这个 解决了 https://github.com/Yonsm/MiService/issues/32

jjiikkkk commented 1 year ago

微信截图_20230328145536

登录失败,我检查了我的小米账号和密码没问题,我打印了登录的返回值,发现没有userId,是什么情况,我的小米账号需要配置什么嘛?

搞不定就不搞呗,我好久没弄了 还有其他方式可以弄

yihong0618 commented 1 year ago

@chaoqunxie thanks 感觉我们可以在 readme 里加一下

bobo-junjun commented 1 year ago

本地可以,服务器不行的可以试试。根据大佬的提示,我把location里面的地址拿到浏览器上,登录,验证之后,服务器还是登录不上。但是我坚信是因为新ip登录验证的问题,于是我换了另外一种方法,在服务器上安装x-ui,然后全局代理到本地,在本地登录一次,通过验证,即可,安装命令,bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh) 具体参考 https://github.com/vaxilu/x-ui。测试亚马逊和腾讯的vps可行,其他未试

Mczye commented 1 year ago

手机有登录小爱同学,用的手机热点网络 在vsc 里面直接访问MiService-main 文件夹 直接把: export MI_USER= export MI_PASS= 写入到micli.py 里面,直接运行micli.py不加list,成功获取了

yihong0618 commented 1 year ago

@Mczye nice 我把这个 issue 置顶

jjiikkkk commented 1 year ago

手机有登录小爱同学,用的手机热点网络 在vsc 里面直接访问MiService-main 文件夹 直接把: export MI_USER= export MI_PASS= 写入到micli.py 里面,直接运行micli.py不加list,成功获取了

vsc是什么,这样的话,国内vps就应该可以用了是吧 还是说 必须用海外的vps

其实接通的方法有很多个,只是都不如云服务器方便

Mczye commented 1 year ago

手机有登录小爱同学,用的手机热点网络 在vsc 里面直接访问MiService-main 文件夹 直接把: export MI_USER= export MI_PASS= 写入到micli.py 里面,直接运行micli.py不加list,成功获取了

vsc是什么,这样的话,国内vps就应该可以用了是吧 还是说 必须用海外的vps

其实接通的方法有很多个,只是都不如云服务器方便

Visual Studio Code 简写打顺手了,Pycharm也可以

Georege commented 1 year ago

windows下使用set 环境变量,然后运行micli list,如果密码包含特殊字符串 的确会报错 如果不想使用windows的wsl,可以安装git,使用右键的open git bash here,然后使用export 环境变量以后,执行micli list,虽然也报错,但是设备列表详情获取到了

gaidan1983 commented 11 months ago

本地笔记本的wls可以执行到唤醒说出问题,但连不上openai,我配置了系统代理(微信机器人就可以正常连接使用)!用阿里云国内的服务器也是到这一步,再用国外的Azure服务器,就报错了login faild/////////怎么解决 image 看看是不是没有额度了,我出的错误提示Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}} 后来API 充了5刀 可以了

yihong0618 commented 11 months ago

本地笔记本的wls可以执行到唤醒说出问题,但连不上openai,我配置了系统代理(微信机器人就可以正常连接使用)!用阿里云国内的服务器也是到这一步,再用国外的Azure服务器,就报错了login faild/////////怎么解决 image 看看是不是没有额度了,我出的错误提示Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}} 后来API 充了5刀 可以了

小爱回答这么生猛的么

maopucheng commented 11 months ago

我发现了一种可能性。 家里的网络,电信没有分配外网IP给你。现在电信默认给你分配了一个内网地址,没有公网地址。 我后来打电话给电信要求给一个外网IP,立刻就可以登录了。

yihong0618 commented 11 months ago

可以的!

waveboy800 commented 10 months ago

windows下使用set 环境变量,然后运行micli list,如果密码包含特殊字符串 的确会报错 如果不想使用windows的wsl,可以安装git,使用右键的open git bash here,然后使用export 环境变量以后,执行micli list,虽然也报错,但是设备列表详情获取到了

这个方式好

p3psi-boo commented 9 months ago

记录一下,一开始用 micli list 也是报错,然后用浏览器访问 mi.com 登录账号之后,再使用 micli 就可以了。推测是需要在同一个 ip 上操作。

endme2085 commented 7 months ago

root@localhost:~# micli list Exception on login None: &39;NoneType' object has no attribute &39;encode' Traceback (most recent call last): File &34;/usr/local/lib/python3.9/dist-packages/miservice/miaccount.py", line 65, in login &34;hash": hashlib.md5(self.password.encode()).hexdigest().upper(), AttributeError: &39;NoneType' object has no attribute &39;encode' Error 链接 Login failed root@localhost:~ export MI_USER=xxxxxxx root@localhost:~# export MI_PASS=xxxxx root@localhost:~ micli list [ { "name&34;: "Router&34;, "model&34;: "xiaomi.router.r4a&34;, "did&34;: "xxxxxxxxxxxxxxxxxxxxxx&34;, "token&34;: "xxxxxxxxxx&34; } ]

yihong0618 commented 7 months ago

root@localhost:~# micli list Exception on login None: &39;NoneType' object has no attribute &39;encode' Traceback (most recent call last): File &34;/usr/local/lib/python3.9/dist-packages/miservice/miaccount.py", line 65, in login &34;hash": hashlib.md5(self.password.encode()).hexdigest().upper(), AttributeError: &39;NoneType' object has no attribute &39;encode' Error 链接 Login failed root@localhost:~ export MI_USER=xxxxxxx root@localhost:~# export MI_PASS=xxxxx root@localhost:~ micli list [ { "name&34;: "Router&34;, "model&34;: "xiaomi.router.r4a&34;, "did&34;: "xxxxxxxxxxxxxxxxxxxxxx&34;, "token&34;: "xxxxxxxxxx&34; } ]

try to login this https://cloud.mi.com/

d0zingcat commented 6 months ago

微信截图_20230328145536 登录失败,我检查了我的小米账号和密码没问题,我打印了登录的返回值,发现没有userId,是什么情况,我的小米账号需要配置什么嘛?

这个是因为海外登录,触发了双重验证。错误消息中的URL就是双重验证要求访问的地址。访问这个地址会先排除你是否是机器人,然后再给你的安全手机发一个短信验证码,短信验证码通过后,当前登录使用的IP才会到白名单上,下次不会再触发双重验证。

坑爹的是,在国内的服务器上,小米登录没问题,但访问 openai 有问题(搭梯子或使用代理都不方便)。在国外的服务器上,访问 openai 没问题了,但小米登录又触发双重验证了。这个双重验证目前必须人工进行。

我测试下来可能是因为我走了代理流量登陆的 所以就有问题了。 要解决也很简单,关闭所有代理,访问一下 https://mi.com 如果本来登陆的就退出,重新使用账号密码登陆一次。如果提示手机号是否还在用,则点还在用。 然后再尝试一下应该就拿得到设备 ID 列表了。

jamesizhang commented 1 month ago

aio-libs/aiohttp#955 (comment)

thinks。 Mac command : /System/Volumes/Data/Applications/Python 3.8/Install Certificates.command