我正在尝试编写一个脚本来访问新的Google Places API。
根据文档中的示例,我可以使以下内容发挥作用
curl -X POST -d '{
"textQuery" : "101 Gowrie, Amsterdam"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: ...' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'
但是在我的nodejs脚本中我认为是相同的:
fetch("https://places.googleapis.com/v1/places:searchText", {
method: "POST",
body: JSON.stringify({ textQuery: "101 Gowrie, Amsterdam" }),
headers: {
"Content-Type": "application/json",
"X-Goog-Api-Key": apiKey,
"X-Goog-FieldMask": "places.displayName,places.formattedAddress"
}
}).then(res => res.json()).then(console.log).catch(console.log)
但随后我收到错误
{
error: {
code: 400,
message: "Invalid language_code: '*'. See full list of supported languages at https://developers.google.com/maps/faq#languagesupport.\n",
status: 'INVALID_ARGUMENT'
}
}
我的查询中没有
*
,并且想要英文结果,所以我很困惑
我在 https://developers.google.com/maps/documentation/places/web-service/text-search#languagecode 找到了答案,它将
languageCode
添加到正文
Google 建议使用其 Node.js Javascript 客户端而不是 REST API。