Я использую приведенный ниже код, чтобы найти отзывы о недвижимости Google. То, что я пытаюсь сделать, это то, что я получаю обзор для свойства, тогда я буду сравнивать его со старым обзором этого свойства (который находится в БД). Если оно больше, чем свойство системы, оно отправляет электронное письмо.
Этот файл запускается каждый час (как файл cron), и я включаю биллинг в Google API, поэтому максимальный лимит составляет 1,50000.
Но по какой-то причине API не возвращает точное количество отзывов.
Например:
Я запускаю этот файл для одного свойства, у которого есть 4 отзыва, но API возвращает 0 2 или 3 раза, а затем через некоторое время возвращает 4 отзыва.
Я не знаю причину этого. Я также заметил, что мы можем увидеть отзывы на странице поиска Google и в Google+. То же самое вы можете написать отзывы в нескольких местах, как в Google+ и в Google Map.
И чтобы проверить отзывы, я использую Google Plus URL. Так возможно ли, что обзор существует, но в другой области (например, на странице поиска Google, но не в 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);
Мой вопрос:
(1) Возможно ли, что обзор существует, но в другой области (как на странице поиска Google, но не в Google+)? Если да, то в таком случае я могу получить URL, где размещен отзыв?
(2) Все ли отзывы синхронизируются в Google?
(3) Или я делаю что-то не так в моем коде?
Я думаю, что я определил, где проблема.
Причина, по которой вы не можете видеть существующие отзывы об этом Месте, заключается в том, что, похоже, у вас есть 2 аккаунта Google + для одного и того же; Единственное отличие (по крайней мере, первое, что я заметил) в почтовом индексе MA 02116 и MA 02111.
Взгляни на:
https://plus.google.com/101511264527346460079/about
а также
https://plus.google.com/105917345931375838754/about
Как видите, во втором — те же отзывы, что и в
страница поиска
И вставив адрес «Кенсингтон, 665 Вашингтон-стрит, Бостон, Массачусетс 02116, Стати Унити» в находчик, Я получаю место, отличное от другого.
Теперь, используя этот последний в
$params = array(
"placeid" => $google_place_id, // the new placeid here
"key" => $google_api_key
);
Затем я могу получить 5 отзывов в ответе API Place Place.
Других решений пока нет …