Korzystam z poniższego kodu, aby znaleźć opinie o Google dotyczące nieruchomości. Próbuję zrobić to, że pobieram recenzję dla nieruchomości, a następnie porównuję ją ze starym przeglądem tej właściwości (która znajduje się w DB). Jeśli jest większa niż właściwość systemu, wysyła wiadomość e-mail.Recenzje w Google API
Ten plik jest uruchamiany co godzinę (jako plik cron), a ja włączam rozliczenia w Google API, więc maksymalny limit wynosi 1,50,000.
Jednak z jakiegoś powodu API nie zwraca dokładnej liczby recenzji. Na przykład:
Uruchomiłem ten plik dla jednej właściwości, która ma 4 recenzje, ale API zwraca 0 dla 2 lub 3 razy, a następnie po pewnym czasie zwraca 4 recenzje.
Nie znam przyczyny. Zauważyłem też, że możemy zobaczyć recenzje na stronie wyszukiwania w Google oraz w Google+. Podobnie możesz pisać opinie w wielu miejscach, np. W Google+ i na Mapie Google.
Aby sprawdzić recenzje, używam adresu URL google plus. Czy to możliwe, że recenzja istnieje, ale w innym obszarze (np. Na stronie wyszukiwania Google, ale nie w Google+)?
/* call api to get review count of Google */
$url = "https://maps.googleapis.com/maps/api/place/details/json?";
$params = array(
"placeid" => $google_place_id,
"key" => $google_api_key
);
$url .= http_build_query($params);
$resjson = file_get_contents($url);
$msg = $resjson;
Yii::log($msg,'info', 'application');
$resjson = json_decode($resjson,true);
$review_count = $resjson['result']['user_ratings_total']=='' ? 0 : $resjson['result']['user_ratings_total'];
/* If review is greater than 0 then check old review and if it's not same then send email */
if($review_count>0)
{
if(sizeof($ressql)>0)
{
/* if google plus review is greater then system's google+ review then send email */
if($review_count>trim($ressql[0]['google_plus_review']))
{
$this->send_googleplusmail($prop_id);
$msg = "Google+ Review for property id (Mail Sent):".$prop_id." , New Review:$review_count, Old Review: ".$ressql[0]['google_plus_review'];
Yii::log($msg,'info', 'application');
}
}
}
$sql=" INSERT INTO tbl_review_alert (propertyid, google_plus_review) VALUES ";
$sql.="('{$prop_id}','{$review_count}')";
$sql.=" ON DUPLICATE KEY UPDATE propertyid= {$prop_id},google_plus_review= {$review_count}";
$this->insert_review($sql);
Moje pytanie brzmi:
(1) Czy to możliwe, że przegląd nie istnieje, ale w innej dziedzinie (jak na stronie wyszukiwarki Google, ale nie w Google+)? Jeśli tak, to czy w takim przypadku mogę uzyskać adres URL, pod którym publikowana jest recenzja?
(2) Czy wszystkie recenzje są zsynchronizowane w Google?
(3) Czy robię coś nie tak w moim kodzie?
Czy możesz zaktualizować swój kod identyfikatorem miejsca, który ma niespójną liczbę recenzji, abyśmy mogli odtworzyć? – Alexey
@Alexey, identyfikator miejsca google jest dynamiczny, powyższy problem dotyczy wielu właściwości. exa: 'https: // plus.google.com/101511264527346460079/about' i' https://www.google.co.in/webhp?ie=utf-8&oe=utf-8&gws_rd=cr&ei=clA-VeieGIORuQSj54DwCw#q = The + Kensington + 665 + Washington + St + Boston% 2C + MA + 02111' widać, że w Google + nie ma przeglądu.ale w wyszukiwarce Google widać, że istnieje 43 opinii Google dotyczących tej usługi. – DS9
Nawiasem mówiąc, interfejs API Miejsc Google może wyświetlać maksymalnie 5 opinii z dokumentu (https://developers.google.com/places/webservice/details), recenzji [] tablicy JSON zawierającej maksymalnie pięć recenzji. – ilpaijin