postman Google Cloud Platform的文本搜索(新)API不会在响应正文中返回“photos”键,即使该地方的照片存在

zd287kbt  于 2023-11-18  发布在  Postman
关注(0)|答案(1)|浏览(167)

我目前正在通过Postman API平台测试newText Search (New) API,并成功进行了身份验证和接收响应。
但是我发现响应体中的“photos”键似乎缺失了,如何在NewPlaces API的响应体中找到该键?
内容:

  • 将请求头X-Goog-FieldMask设置为 *(以获取每个字段)
  • 将请求正文设置为:
{
    "textQuery": "vegetarian food near Paya Lebar MRT",
    "regionCode": "sg",
    "minRating": 4,
    "maxResultCount": 20,
    "rankPreference": "RELEVANCE"
}

字符串

  • 响应:x1c 0d1xx 1c 1d 1x

我知道这仍然是测试版,因此我不确定这是否是预期的行为,一个错误,或仍然是一个功能在开发中。有没有地方我可以看到这个API实现的时间轴和状态?
另外,在Text Search (New) API文档中指定的所有字段X-Goog-FieldMask将来都会被支持吗?
非常感谢您的帮助!
docs中,我看到places.photosX-Goog-FieldMask中的一个可能字段:

Specify one or more of the following place data types:

..., places.location, places.photos, places.plusCode, ...


然而,设置X-Goog-FieldMask: places.photos,得到一个空的结果:

我还验证了第一个结果(在第一张照片上)至少有一个照片显示:https://www.google.com/maps?cid=4095281016176447978

如果我使用方式(使用地点ID ->获取地点详细信息->获取地点照片),照片也可以工作:x1c4d 1x

hfwmuf9z

hfwmuf9z1#

似乎他们现在部署了这个,它对我有效:

curl --location --request POST 'https://places.googleapis.com/v1/places:searchText' \
--header 'X-Goog-Api-Key: YOUR_API_KEY_HERE' \
--header 'X-Goog-FieldMask: places.displayName,places.photos,places.googleMapsUri' \
--header 'Content-Type: application/json' \
--data-raw '{
  "textQuery": "Eiffel Tower"
}'

字符串
答复如下:

{

  "places": [

    {

      "googleMapsUri": "https://maps.google.com/?cid=10222232094831998944",

      "displayName": {

        "text": "Eiffel Tower",

        "languageCode": "en"

      },

      "photos": [

        {

          "name": "places/ChIJLU7jZClu5kcR4PcOOO6p3I0/photos/AcJnMuEBW95lJSICR5KsWDrzNkKePHffESYIWaY0yqbnm7VsBtG0ADag9vwlFBN42-yGZiG0z-rEtGrVUdH1P1hU8LSET2qAOlc6oT8O55VLQlNWTZbr-wiILeQ3cv1itDeq6jXHQH3IyP9vth3zefjRuOHDA7f2pgT9zUVc",

          "widthPx": 1000,

          "heightPx": 660,

          "authorAttributions": [

            {

              "displayName": "1PLUS VIETNAM",

              "uri": "//maps.google.com/maps/contrib/100968979814345776530",

              "photoUri": "//lh3.googleusercontent.com/a-/ALV-UjXLaDbibv0nq2sjhPP9EY6Gf_TrJibVerZwYs_DMvb6goMR=s100-p-k-no-mo"

            }

          ]

        },
...


然后我们提取photo_reference,它存在于/photos之后的每张照片的name参数中,在这个例子中是:
AcJnMuEBW95lJSICR5KsWDrzNkKePHffESYIWaY0yqbnm7VsBtG0ADag9vwlFBN42-yGZiG0z-rEtGrVUdH1P1hU8LSET2qAOlc6oT8O55VLQlNWTZbr-wiILeQ3cv1itDeq6jXHQH3IyP9vth3zefjRuOHDA7f2pgT9zUVc
最后,使用以下URL获取图像:
https://maps.googleapis.com/maps/api/place/photo?photoreference= AcJnMuEBW95lJSICR5KsWDrzNkKePHffESYIWaY0yqbnm7VsBtG0ADag9vwlFBN42-yGZiG0z-rEtGrVUdH1P1hU8LSET2qAOlc6oT8O55VLQlNWTZbr-wiILeQ3cv1itDeq6jXHQH3IyP9vth3zefjRuOHDA7f2pgT9zUVc&sensor=false&maxheight = 1600&maxwidth = 1600&key=YOUR_API_KEY_HERE
不要忘记将YOUR_API_KEY_HERE替换为您的API密钥。

相关问题