我正在尝试使用以下内容访问 Google 的地理编码 API:
curl https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=XXX
我得到以下信息:
{"error_message": You must use an API key to authenticate each request to Google Maps Platform APIs. For additional information, please refer to http://g.co/dev/maps-no-account", "results": [], "status": "REQUEST_DENIED"}
我传递的 key 与启用了地理编码和地点 API 的项目相关联,并且该项目也启用了计费。
最佳答案
我认为 shell 会干扰您查询中的某些字符。如果您使用 bash 或类似的 shell,我可以用单引号或双引号将查询地址括起来。例如:
curl 'https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=XXX'
{
"results" : [
{
"address_components" : [
{
"long_name" : "1600",
"short_name" : "1600",
"types" : [ "street_number" ]
...
为方便起见,您可以将 key 存储在 shell 环境变量中,并为 shell 使用双引号以在查询中扩展它。这是我所做的:
export GOOGLE_MAPS_API_KEY=XXX
curl "https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=${GOOGLE_MAPS_API_KEY}"
关于google-maps - 带有 cURL 的 Google Geocoding API 请求被拒绝。我有一个与启用计费的项目相关联的 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56861536/