我需要从Google地图API获取评论。详细信息在此页面上:
https://developers.google.com/places/documentation/details#PlaceDetailsResults
具体详情将从以下页面获取:
我的问题是我找不到请求中的"reference"是什么,以及如何从我的Google Plus页面中找到此参数值。
我需要从Google地图API获取评论。详细信息在此页面上:
https://developers.google.com/places/documentation/details#PlaceDetailsResults
具体详情将从以下页面获取:
我的问题是我找不到请求中的"reference"是什么,以及如何从我的Google Plus页面中找到此参数值。
另一种更近期的方法:
https://maps.googleapis.com/maps/api/place/details/json?placeid={place_id}&key={api_key}
响应内容:
{
"html_attributions": [],
"result": {
...
"rating": 4.6,
"reviews": [
{
"author_name": "John Smith",
"author_url": "https://www.google.com/maps/contrib/106615704148318066456/reviews",
"language": "en",
"profile_photo_url": "https://lh4.googleusercontent.com/-2t1b0vo3t-Y/AAAAAAAAAAI/AAAAAAAAAHA/0TUB0z30s-U/s150-c0x00000000-cc-rp-mo/photo.jpg",
"rating": 5,
"relative_time_description": "in the last week",
"text": "Great time! 5 stars!",
"time": 1508340655
}
]
}
}
评论仅限于最新的5条。
要获取谷歌评论,您需要该地点的参考ID。为了获得此参考键,您可以使用谷歌地点搜索API请求。
它的响应将包含参考ID,您可以在请求中使用该ID。
<PlaceSearchResponse>
<status>OK</status>
<result>
<name>Koshy's Restaurant</name>
<type>bar</type>
<type>restaurant</type>
<type>food</type>
<type>establishment</type>
<formatted_address>
39, St Marks Road,Shivajinagar,Bangalore, Karnataka, 560001, India
</formatted_address>
<geometry>
<rating>3.7</rating>
<icon>
http://maps.gstatic.com/mapfiles/place_api/icons/bar-71.png
</icon>
**<reference>**
CnRwAAAA1z8aCeII_F2wIVcCnDVPQHQi5zdd-3FsDl6Xhb_16OGrILvvvI4X4M8bFk2U8YvuDCKcFBn_a2rjvYDtvUZJrHykDAntE48L5UX9hUy71Z4n80cO7ve_JXww6zUkoisfFnu6jEHcnKeeTUE42PCA4BIQGhGz0VrXWbADarhKwCQnKhoUOR-Xa9R6Skl0TZmOI4seqt8rO8I
**</reference>**
<id>2730db556ca6707ef517e5c165adda05d2395b90</id>
<opening_hours>
<open_now>true</open_now>
</opening_hours>
<html_attribution>
<a href="https://plus.google.com/116912222767108657277">Ujaval Gandhi</a>
</html_attribution>
</photo>
</result>
$reqUri = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?key='.YOURSERVERKEY;
$reqUri .= '&sensor=false&radius=500';
$reqUri .= '&location=38.908310,-104.784035&name='.urlencode(LOCATION NAME);
$reqUri .= '&keyword='.urlencode(WEBSITE PHONE);
$data = cURL($reqUri);
$data = json_decode($data);
echo $data ->results[0]->reference;
希望这能对您有所帮助。
***注意:location=38.908310,-104.784035 这个变量不是自动的,您必须拥有它。
* reviews[] 一个JSON数组,最多包括五条评论。如果在Place Details请求中指定了语言参数,则Places服务会偏向于显示使用该语言撰写的评论。
- SHGapi = GooglePlaces("Your API key")
places = api.search_places_by_coordinate("40.819057,-73.914048", "100", "restaurant")
for place in places:
details = api.get_place_setails(place['place_id'], fields)
try:
website = details['result']['website']
except KeyError:
website = ""
try:
name = details['result']['name']
except KeyError:
name = ""
try:
address = details['result']['formatted_address']
except KeyError:
address = ""
try:
phone_number = details['result']['international_phone_number']
except KeyError:
phone_number = ""
try:
reviews = details['result']['reviews']
except KeyError:
reviews = []
print("===================PLACE===================")
print("Name:", name)
print("Website:", website)
print("Address:", address)
print("Phone Number", phone_number)
print("==================REVIEWS==================")
for review in reviews:
author_name = review['author_name']
rating = review['rating']
text = review['text']
time = review['relative_time_description']
profile_photo = review['profile_photo_url']
print("Author Name:", author_name)
print("Rating:", rating)
print("Text:", text)
print("Time:", time)
print("Profile photo:", profile_photo)
print("-----------------------------------------")
关于此代码和Google Places API的更多细节,您可以查看此教程:https://python.gotrained.com/google-places-api-extracting-location-data-reviews/
我在本地主机上遇到了问题。我添加了我的example.com.test域名,但当然我无法验证它,因为它无法从外部访问(除了ngrok变体)。
我在GitHub上发现了一个惊人的脏技巧:gaffling/PHP-Grab-Google-Reviews。
对我来说非常有效,除了我不得不将/* CHECK SORT */
行更改为if (isset($option['sort_by_reating_best_1']) and $option['sort_by_reating_best_1'] == true)
,并且我还通过可选的第二个函数参数将foreach限制为仅5条评论。
$url = "https://maps.googleapis.com/maps/api/place/details/json?placeid={$place_id}&key={$key}"; $result = json_decode(file_get_contents($url), true);
返回array ( 'error_message' => 'This API project is not authorized to use this API.', 'html_attributions' => array ( ), 'status' => 'REQUEST_DENIED', )
。 - s3c