我使用Uber API创建了一个乘车请求(node-uber)
我首先从uber.authorization
获得calback后获得用户身份验证(uber.getAuthorizeUrl
)。
然后我调用估算API并获得响应(estimates.getPriceForRoute
)
然后我使用相同的开始&结束坐标与估算中返回的产品ID(requests.create
)。
我总是回来:HTTP Response with error code: 409
有什么建议吗?
更新 这是估计请求的代码(完美地运行)
router.get('/estimate', function(request, response, next) {
var query = url.parse(request.url, true).query;
if (!query || !query.start_lat || !query.start_lng || !query.end_lat || !query.end_lng) {
response.sendStatus(400);
} else {
uber.estimates.getPriceForRoute(query.start_lat, query.start_lng, query.end_lat, query.end_lng , 1, function(err, res){
if (err) {
console.error(err);
response.sendStatus(500);
} else {
var productType = getProductType(query);
var selectedProduct = _.find(res.prices, function(price){
return price.display_name == productType;
});
response.json(selectedProduct);
}
});
} });
以下是我得到的回复
{" localized_display_name":" uberX"" high_estimate":7,"最小":7,"持续时间&# 34;:240,"估计":" $ 7-7""距离":0.95," DISPLAY_NAME":" uberX& #34;" PRODUCT_ID":" a1111c8c-c720-46c3-8534-2fcdd730040d"" low_estimate":7," surge_multiplier&#34 ;: 1," CURRENCY_CODE":" USD"}
现在有问题的部分:
router.get('/request', function(request, response, next) {
var query = url.parse(request.url, true).query;
if (!query || !query.start_lat || !query.start_lng || !query.end_lat || !query.end_lng || !query.productId) {
response.sendStatus(400);
} else {
uber.requests.create({
"product_id": query.productId,
"start_latitude": query.start_lat,
"start_longitude": query.start_lng,
"end_latitude": query.end_lat,
"end_longitude": query.end_lng
}, function (err, res) {
if (err) {
console.error("error: " + err);
response.sendStatus(400);
} else {
//console.log(res);
response.json(res);
}
});
}
});
行console.error("error: " + err);
返回此输出:
错误:HTTP响应,错误代码:409
答案 0 :(得分:0)
请您分享一下您的源代码吗?我假设您尝试调用/ v1 / requests /估计端点。这endpoints can return a 409 - Conflict。此状态表示现在存在激增。 Here is a description of the surge flow:
node-uber项目不会主动支持处理已发布版本的激增。但是,v1.0.0有一个分支,有人开始致力于直接支持as listed in this issue conversation。