Can't auth
Sfinx opened this issue · 13 comments
doorbot fetch-raw-data {"error":"You need to sign in or sign up before continuing."} +594ms
doorbot fetch-json { error: 'You need to sign in or sign up before continuing.' } +1ms
doorbot authentication_token undefined +0ms
Looks like they changed the API on us, I'm getting auth errors now too.. I'm looking into this.
The API was changed with new Android app release. The old Android apps do not work too ;)
Gah, that sucks.. Let me see what I can find out..
’m guessing this is because of the negative press that Ring recently
received about formerly authorized people still being able to access the
camera feeds even after the account password was changed. E.g. the person
that was spying on their ex’s Ring cameras.
The auth tokens expiring after some time, and you have to know the new password to be able to get the new token. Sounds like bulshit.
BTW: mitmproxy do not work in a dumb way anymore - they started using certificate pinning
I just tested the python
module for Ring and it fails too.. I'm guessing they pushed out a new API that broke every other ring module out there.. I'll play around and see what I can figure out.
Reversed Android app - they switched to oauth protocol. Stay tuned ...
No ;) In short:
- get the access_token first, post to https://oauth.ring.com/oauth/token the following json:
{
"client_id": "ring_official_android",
"grant_type": "password",
"password": "your_pass",
"scope": "client",
"username": "your_email"
}
you will have the json reply with "access_token"
- get the auth_token, post to https://api.ring.com/clients_api/session?api_version=9 the json:
{
"device": {
"hardware_id": "some hex shit",
"metadata": {
"api_version": "9",
},
"os": "android"
}
}
but set the authorization header to "bearer " + access_token. You will have usual profile object reply. Next work as usual
Oh nice! Trying this now..
Pushed up doorbot@5.0.0
with the new oAuth client connection. Hopefully this fixes all the issues.. Huge thanks to @Sfinx for the help with this..
Could someone describe a solution to this problem than an ordinary guy can follow?
It seems to start with "get the access token" but no clue how to do this.
If I wait, will the solution be in a later release?