You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GoogleApis Places中添加FieldMask?请求报错400解决

解决Google Places API请求缺少FieldMask的400错误

调用Google Places Text Search API时出现400错误,核心原因是该API强制要求指定FieldMask参数,用来明确请求需要返回哪些字段。以下是两种在Dart代码中添加FieldMask的可行方法:

方法一:通过请求头添加

在调用searchText方法时,传入headers参数设置X-Goog-FieldMask:

import 'package:googleapis/places/v1.dart';
import 'package:googleapis_auth/googleapis_auth.dart';
import 'package:http/http.dart' as http;

final http.Client client = clientViaApiKey(apikey);
final PlacesApi places = PlacesApi(client);

GoogleMapsPlacesV1SearchTextResponse res = await places.places.searchText(
  GoogleMapsPlacesV1SearchTextRequest(
    textQuery: "mcDonals Near Me",
    maxResultCount: 10,
    locationRestriction: GoogleMapsPlacesV1SearchTextRequestLocationRestriction.fromJson({
      "circle": {
        "center": {"latitude": 37.7937, "longitude": -122.3965},
        "radius": 500.0
      }
    }),
  ),
  headers: {
    // 按需指定返回字段,多个字段用逗号分隔
    'X-Goog-FieldMask': 'places.id,places.displayName,places.formattedAddress,places.location',
    // 测试阶段可使用'*'获取所有字段,生产环境不推荐
    // 'X-Goog-FieldMask': '*',
  },
);

方法二:通过查询参数添加

部分googleapis库的方法支持直接传入$fields参数,格式采用嵌套结构:

import 'package:googleapis/places/v1.dart';
import 'package:googleapis_auth/googleapis_auth.dart';
import 'package:http/http.dart' as http;

final http.Client client = clientViaApiKey(apikey);
final PlacesApi places = PlacesApi(client);

GoogleMapsPlacesV1SearchTextResponse res = await places.places.searchText(
  GoogleMapsPlacesV1SearchTextRequest(
    textQuery: "mcDonals Near Me",
    maxResultCount: 10,
    locationRestriction: GoogleMapsPlacesV1SearchTextRequestLocationRestriction.fromJson({
      "circle": {
        "center": {"latitude": 37.7937, "longitude": -122.3965},
        "radius": 500.0
      }
    }),
  ),
  // 用括号嵌套指定返回字段
  $fields: 'places(id,displayName,formattedAddress,location)',
  // 测试阶段可使用'*'获取所有字段
  // $fields: '*',
);

注意:生产环境建议明确指定所需字段,避免返回冗余数据,提升请求性能与响应速度。

内容的提问来源于stack exchange,提问作者Pranay Dhongade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 00:12:41