2015-04-17 21 views
8

Mülk için Google incelemeleri bulmak amacıyla aşağıdaki kodu kullanıyorum. Ne yapmaya çalışıyorum, mülk için inceleme getirme, o zaman bu özellik (eski DB ile olan) eski gözden geçirme ile karşılaştıracağım. Sistemin mülkünden daha büyükse, o zaman e-posta gönderir.Yorumlar Google API

Bu dosya her saat için (cron dosyası olarak) çalıştırılıyor ve Google API’da faturalandırmayı etkinleştiriyorum, bu nedenle maksimum sınır 1,50.000'dir.

Ancak bazı nedenlerden dolayı API, incelemelerin tam sayısını döndürmez. Örneğin:
Bu dosyayı 4 inceleme özelliği olan bir özellik için çalıştırıyorum, ancak API 2 veya 3 kez 0 döndürüyor, sonra bir süre sonra 4 yorum döndürüyor.

Bunun arkasındaki sebebi bilmiyorum. Ayrıca, Google arama sayfasında ve Google + 'da incelemeleri görebileceğimizi de fark ettim. Google + 'da ve Google Haritalar'da olduğu gibi, birden çok yerde yorum yazabilirsiniz.

Ve incelemeleri kontrol etmek için google plus url kullanıyorum. Dolayısıyla, incelemenin mevcut olması olasıdır, ancak başka bir alanda (Google arama sayfasında olduğu gibi, Google + 'da değil) olabilir mi?

/* 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); 

Benim Soru geçerli:
(1) (Google arama sayfasında değil Google + gibi) o yorumu var yok olması mümkün mü, ama başka bir alanda? Evet ise, bu durumda, incelemenin gönderildiği URL'yi alabilir miyim?
(2) Tüm bu yorumlar Google’da senkronize ediliyor mu?
(3) Ya da kodumda yanlış bir şeyler yapıyorum?

+1

Kodunuzu, tutarsız sayıda yorum içeren yer kimliğiyle güncelleyebiliriz, böylece yeniden oluşturabilir miyiz? – Alexey

+0

@Alexey, google yer kimliği dinamik, yukarıdaki sorun birden çok mülk için gerçekleşiyor. exa: 'https: // plus.google.com/101511264527346460079/about' ve' https://www.google.co.in/webhp?ie=utf-8&oe=utf-8&gws_rd=cr&ei=clA-VeieGIORuQSj54DwCw#q = + Kensington + 665 + Washington + St + Boston% 2C + MA + 02111'le Google + 'da yorum yazabilirsiniz.Ancak google aramada, bu mülk için 43 Google yorumu olduğunu görebilirsiniz. – DS9

+0

Yalnızca bir not, Google Rehber API'sı, dokümandan (https://developers.google.com/places/webservice/details) en fazla 5 yorum gösterebilir, [] beş yoruma kadar bir JSON dizisini inceler. – ilpaijin

cevap

5

Sanırım sorunun nerede olduğunu anlıyorum.

Bu Yer ile ilgili mevcut yorumları görememenizin nedeni, aynı şekilde 2 google + hesabının olduğu görülüyor;

https://plus.google.com/101511264527346460079/about

ve

https://plus.google.com/105917345931375838754/about: Tek fark (en azından ilk ben fark ettik) 02111.

bir göz atın, posta kodu MA 02116 vs MA olduğunu gördüğünüz gibi

, ikincisinde ise sen search page

gördüğünüz aynı yorumlar vardır

Ve "Kensington, 665 Washington St, Boston, MA 02116, Stati Uniti" adresini the finder içine ekleyerek, diğerinden farklı bir yer buluyorum.

Şimdi

$params = array(
    "placeid" => $google_place_id, // the new placeid here 
    "key" => $google_api_key 
); 

bu sonuncuyu kullanarak Sonra Yeri API json yanıt olarak 5 değerlendirmeleri alabilirsiniz.

+0

çok teşekkürler. Sadece merak, iki google + hesabı olduğunu nasıl bulabilirsin? – DS9

+0

Rica ederim. Ancak özel bir şey yok, sadece oynadım ve fark ettim. – ilpaijin