davglass/doorbot

Can't auth

Sfinx opened this issue · 13 comments

Sfinx commented
  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.

Sfinx commented

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..

Sfinx commented

’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.

Sfinx commented

Reversed Android app - they switched to oauth protocol. Stay tuned ...

Sfinx commented

No ;) In short:

  1. 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"

  1. 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?

@tommh44 doorbot@5.0.x contains the new auth code and should work as expected. You don't need to do anything other than update the module.