首页 > 解决方案 > Google Maps Place Details API 不返回电话号码

问题描述

我正在打电话给 Place Details。我想取回电话号码(formatted_phone_number)。该字段未返回,我在响应中看不到任何电话号码。我将 fields 属性设置为null以获取所有可用属性

const placeDetails = (result) => {
    console.log('placeDetails');

    const request = {
        placeId: result.place_id,
        fields: null //['name', 'formatted_phone_number', 'rating', 'reviews', 'website']
    };

    service.getDetails(request, placeDetailsCb);
}

const placeDetailsCb = (place, status) => {
    if (status == google.maps.places.PlacesServiceStatus.OK) {
        console.log('place', place)
    }
    else {
        console.log(`Place Details Response not OK. Status: ${status}`)
    }
}

回复

对象 { address_components: (9) […], adr_address: "563 2nd St, San Francisco, CA 94107-1411, USA", formatted_address: "563 2nd St, San Francisco, CA 94107, USA", 几何:{…} ,图标:“ https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png ”,id:“69cfece0624106a3c1dc8669ffa975fb6464faeb”,名称:“563 2nd St”,place_id:“ChIJrfXAU3iAhYARyUGceTIdcMg”,参考:“ ChIJrfXAU3iAhYARyUGceTIdcMg”,范围:“GOOGLE”,...} api.js:57:17

我还尝试了附近地点搜索和自动完成搜索。按类型 = 建立的自动完成过滤未返回任何结果,并且该过滤器仅返回前提和地理编码类型,而不是建立。

https://cors-anywhere.herokuapp.com/https://maps.googleapis.com/maps/api/place/autocomplete/json?input=563 2nd St, San Francisco, CA 94107, USA&type=establishment&key=<APIKEY>
https://cors-anywhere.herokuapp.com/https://maps.googleapis.com/maps/api/place/autocomplete/json?input=563 2nd St, San Francisco, CA 94107, USA&key=<APIKEY>

附近搜索确实返回了场所,但不是 maps.google.com 中出现的场所(场所

https://cors-anywhere.herokuapp.com/https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=37.7825321,-122.3946465&radius=10&type=establishment&key=<APIKEY>

标签: javascriptgoogle-mapsgoogle-api

解决方案


最新更新是电话号码是 Google Maps API 上“联系人”搜索的一部分,费用更高。因此,它与结果分开。您不会通过地点 ID 搜索获得电话号码。

参考:- https://developers.google.com/maps/documentation/places/web-service/details


推荐阅读