cubehouse / themeparks

Unofficial API for accessing ride wait times and schedules for Disneyland, Disney World, Universal Studios, and many more parks
MIT License
542 stars 125 forks source link

Tokyo Disney fetches fail with invalid device ID #138

Closed dotaguro closed 5 years ago

dotaguro commented 5 years ago

When fetching wait times, the Tokyo parks return this error:

"errors": [ { "code": "error.invalid", "property": "deviceId" } ]

cubehouse commented 5 years ago

If you could find the correct latest deviceId and make a pull request, that would be greatly appreciated. Otherwise I will try and find time to look into this later.

dotaguro commented 5 years ago

I don't have my themeparks dev env up to send a PR, but I installed the official app again and sniffed the request/response pairs. Looks like we need a version bump to 1.0.8, and something like "X-PORTAL-DEVICE-ID": "ZDZmYTA22BK22CqldheDjspHRVgsYGoo5TzEMqyrtwk474v5CbpBcq4S1cJ21Rk3vEhFEeX2Mf1VtuyuO8MgvKOARj2onw=="

Looking at the request/responses, it looks like that's coming from a new API call before anything else:

POST: https://api-portal.tokyodisneyresort.jp/rest/v1/devices User-Agent: TokyoDisneyResortApp/1.0.8 Android/6.0.1
Accept: application/json
x-api-key: 818982cd6a62e7927700a4fbabcd4534a4657a422711a83c725433839b172371
X-PORTAL-LANGUAGE: en
X-PORTAL-OS-VERSION: Android 6.0.1
X-PORTAL-APP-VERSION: 1.0.8
X-PORTAL-DEVICE-NAME: shamu
Content-Length: 0
Host: api-portal.tokyodisneyresort.jp
Connection: Keep-Alive
Accept-Encoding: gzip

Which returns: {"deviceId":"ZDZmYTA22BK22CqldheDjspHRVgsYGoo5TzEMqyrtwk474v5CbpBcq4S1cJ21Rk3vEhFEeX2Mf1VtuyuO8MgvKOARj2onw=="}

And then subsequent requests use that device ID. I'm not sure how long it's good for.

cubehouse commented 5 years ago

Published an update in 4.7.10. Let me know how it goes.