本文档介绍了开始使用 Places API(新)所需的步骤。
|
确保您满足前提条件。 |
在您的 Google Cloud 云项目中启用该 API。 |
配置 API 密钥或 OAuth 以发出经过身份验证的 API 请求。 |
只有在 API 调用中包含 API 密钥或 OAuth 令牌时,才能使用 Google Maps Platform 产品,这样可防止这些产品遭到未经授权的使用。
获取用于 Places API(新版)的 API 密钥
API 密钥是一个唯一的字母数字字符串,可将您的 Cloud Billing 账号和 Google Cloud 项目与您的应用向 Google Maps Platform API 或 SDK 发出的请求相关联。
如需将 Places API(新)添加到 API 密钥,请执行以下操作:
控制台
-
前往 Google Maps Platform > 密钥和凭据页面。
- 如果出现提示,请选择现有项目。
可用密钥的列表会显示在 API 密钥下方。
如果您没有 API 密钥,或者想要创建用于 Places API(新)的 API 密钥,请创建新的 API 密钥:
在密钥和凭据页面上,依次点击 + 创建凭据 > API 密钥。
已创建的 API 密钥对话框会显示您新创建的 API 密钥。
- 点击 API 密钥的名称即可修改该密钥。
在修改页面上的密钥限制下,执行以下操作:
- 在应用限制下,如果选择的不是无,则只有来自这些来源的请求才会被允许。如需了解详情,请参阅限制您的 API 密钥。
在 API 限制下:
- 如果选择了限制密钥,请选择下拉框,将 Places API(新)添加到 API 密钥。
- 如果选择不限制密钥,则可以使用该 API 密钥向 Places API(新)发出请求。
请务必在实际使用之前限制 API 密钥。
- 选择保存。
- 选择已修改的密钥对应的显示密钥,以显示该密钥的字母数字字符串。将该字符串传递给下一部分中显示的示例请求。
gcloud
-
获取要更新的密钥的 ID。
此 ID 与显示名称或密钥字符串不同。您可以使用以下
gcloud命令列出项目中的密钥来获取此 ID。gcloud services api-keys list
该 ID 包含在每个密钥的响应的
name字段中:name: projects/PROJECT_ID/locations/global/keys/KEY_ID
如果您没有 API 密钥,或者想要创建用于 Places API(新)的 API 密钥,请创建新的 API 密钥:
gcloud services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
详细了解 Google Cloud SDK、Cloud SDK 安装和以下命令:
-
使用
gcloud services api-keys update命令指定可使用 API 密钥向其进行身份验证的服务。替换以下值:
- KEY_ID:您要限制的密钥的 ID。
SERVICE_1、SERVICE_2…:
密钥可用于访问的 API 的服务名称。您必须使用 update 命令提供所有服务名称;提供的服务名称会替换密钥的任何现有服务。
您可以在 API 信息中心上搜索 API 来查找服务名称。对于 Places API(新),服务名称为
places.googleapis.com。gcloud services api-keys update KEY_ID \ --api-target=service=places.googleapis.com \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
发出 API 请求
发出 Places API(新)请求,以针对字符串“澳大利亚悉尼的辣味素食”返回 JSON 响应,并执行文本搜索。您必须在每个请求中都添加 API 密钥的字母数字字符串,并且对于包含 API 密钥的请求,必须使用 HTTPS。
点击下方代码中的 API_KEY 以插入密钥的字母数字字符串:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'- 点击代码示例中的复制图标
以复制 curl命令。 - 将该命令粘贴到终端窗口中,然后运行该命令。
响应是一个 JSON 对象,格式如下:
{ "places": [ { "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0", "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0", "types": [ "vegan_restaurant", "vegetarian_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "nationalPhoneNumber": "0433 479 794", "internationalPhoneNumber": "+61 433 479 794", "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "addressComponents": [ { "longText": "29", "shortText": "29", "types": [ "street_number" ], "languageCode": "en-US" }, ... }
应用 API 密钥限制
Google 强烈建议您限制 API 密钥,仅将其用于您的应用所需要的 API。限制 API 密钥可防止您的应用收到无正当理由的请求,从而提高应用安全性。您需要承担因滥用不受限制的 API 密钥而产生的费用。如需了解详情,请参阅 Google Maps Platform 安全指南。
API 密钥支持两种类型的限制:
如需详细了解如何应用限制,请参阅限制 API 密钥。
后续步骤
现在,您已启用 Places API(新版)并配置了 API 密钥,请参阅关于 Places API(新版),详细了解如何使用 Places API(新版)。