Google Route Optimization API无OAuth的POST请求头构造及多站点优化问题
Google Route Optimization API 请求配置问题解答
是否必须使用OAuth认证?
不是必须。Route Optimization API支持两种认证方式:
- API密钥(
X-Goog-Api-Key):只要在Google Cloud控制台给该API启用密钥访问权限,且密钥绑定了正确的项目和已启用的Route Optimization API,就可以使用。 - OAuth 2.0:适用于需要用户授权的场景(比如访问用户私有数据),但普通路线优化请求用API密钥足够。
正确的REST POST请求头及示例
你之前请求失败的原因大概率是端点URL错误、字段掩码不匹配,或者未启用新API。以下是正确的配置:
请求端点
https://routeoptimization.googleapis.com/v1:computeRoutes
必要请求头
Content-Type: application/json:固定要求,标识请求体格式X-Goog-Api-Key: YOUR_API_KEY:替换为你的有效API密钥X-Goog-FieldMask: [需要返回的字段]:新API的字段掩码和旧Routes API不同,比如要获取优化后的途经点,需指定routes.optimizedIntermediateWaypoints,可根据需求添加其他字段(如routes.totalDistance、routes.totalDuration)
完整curl请求示例
curl -X POST \ 'https://routeoptimization.googleapis.com/v1:computeRoutes' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.optimizedIntermediateWaypoints,routes.totalDistance,routes.totalDuration' \ -d '{ "origin": {"location": {"latLng": {"latitude": 37.7749, "longitude": -122.4194}}}, "destination": {"location": {"latLng": {"latitude": 37.3382, "longitude": -121.8863}}}, "intermediateWaypoints": [ {"location": {"latLng": {"latitude": 37.4220, "longitude": -122.0841}}}, {"location": {"latLng": {"latitude": 37.8044, "longitude": -122.2711}}} ], "travelMode": "DRIVE" }'
额外注意事项
- 确保在Google Cloud控制台启用Route Optimization API,而不是仅启用旧的Routes API;
- 检查API密钥的权限设置,确认已允许访问Route Optimization API;
- 字段掩码必须准确,否则会返回错误或不返回所需数据。
内容的提问来源于stack exchange,提问作者Anne Stine
相关产品推荐
相关产品推荐

