Some devices got a bad request on next makeWebRequest:
Communications.makeWebRequest("https://www.googleapis.com/calendar/v3/calendars/[email protected]/events",
{timeMin=>2020-4-30T12:19:00+02:00, timeMax=>2020-5-1T12:19:00+02:00},
{:method=>Communications.HTTP_REQUEST_METHOD_GET, :headers=>{ "Authorization"=>"Bearer "+"ya29…valid-oauth-token…OpxLk" }}, method(:onEvents));
- in simulator it works fine
- in majority of devices it works fine
- the oauth token is valid: the login was confirmed and another request was successful
- Error 400: Bad Request on some devices: e.g. iPhone X, iOS 13.4.1, Garmin Connect: 4.30
- same parameters work on https://developers.google.com/calendar/v3/reference/events/list
- the user even tested it works for his account in the simulator, but not in the device through his phone
Testing:
- by previous testing I realised in another request the device translated "showDeleted"=>false to "showDeleted"=>0 and that was not accepted by Google on some devices while worked fine on most of them. So I fixed that one.
- but in the request above all the parameters are strings, so I don't see anything that can go wrong.
- from debugging couple of devices, I am almost sure the problem is caused inside the makeWebRequest. But I don't know what can go wrong. The debug data just looks good yet it replies with the Bad Request.
What can be wrong there?
The only idea I have is that it is something phone/app specific inside the makeWebRequest itself.