我一直在测试Uber API一个月,最近我看到了一些不稳定的行为。
在我的代码中,Uber端点返回了一些异常响应。现在我在下面粘贴我的代码的屏幕截图:
你可以看到我有一个全局字符串类型变量“baseURL”,我一直在真实服务器和沙箱之间切换它,如下所示: “https://api.uber.com/v1”和“https://sandbox-api.uber.com/v1”
但是根据我的测试结果,我可以说沙盒中的大多数API工作得非常好,但是当我切换到真正的服务器域时,我测试过的所有API根本不起作用。
更新
对于沙箱环境,/v1/estimates/time
也不起作用。它将返回401
。
我的请求网址如下:https://sandbox-api.uber.com/v1/estimates/time?server_token=myToken&start_latitude=39.914097&start_longitude=116.458539
。
1)POST /v1/request/estimate
我确信“POST”是Uber API doc建议的内容(https://developer.uber.com/v1/endpoints/)。但是当我切换到真实服务器时拍摄了这个屏幕截图(沙盒对于相同的代码没有任何问题)。
它返回:"Method not supported for this endpoint."
/ "method_not_allowed"
405 code
。
2)POST /v1/requests
与真实服务器相同的行为(沙箱效果很好),如下所示,它还返回"invalid OAuth 2.0 credentials provided."
/ "unauthorized"
405 code
。但我确信我可以使用相同的凭据在沙盒中发出请求。
3)GET /v1/estimates/time
即使是这个API,它也不需要访问令牌,但仍然使用"No authentication provided."
返回"unauthorized"
/ 401 code
。
请注意,它适用于沙箱但对真实服务器失败。
请帮助,非常感谢!
答案 0 :(得分:1)
每个人都可以在沙盒环境中使用Uber API Request端点,但在生产中使用它需要白名单。您可以在优步支持页面上请求将您的应用列入白名单:https://developer.uber.com/support/。
对于/ v1 / estimate / time端点,生产中需要服务器令牌或访问令牌,但不需要白名单。