2015-04-17 11 views
8

में समीक्षा मैं संपत्ति के लिए Google समीक्षा खोजने के लिए नीचे दिए गए कोड का उपयोग कर रहा हूं। मैं जो करने की कोशिश कर रहा हूं वह है, मैं संपत्ति के लिए समीक्षा ला रहा हूं, फिर मैं उस संपत्ति की पुरानी समीक्षा (जो डीबी में है) के साथ इसकी तुलना करेगा। यदि यह सिस्टम की संपत्ति से अधिक है, तो यह ईमेल भेजता है।Google एपीआई

यह फ़ाइल हर घंटे (क्रॉन फ़ाइल के रूप में) के लिए चलती है और मैं Google API में बिलिंग सक्षम करता हूं, इसलिए अधिकतम सीमा 1,50,000 है।

लेकिन किसी कारण से एपीआई समीक्षाओं की सटीक गणना वापस नहीं करता है। उदाहरण के लिए:
मैं इस फ़ाइल को एक संपत्ति के लिए चलाता हूं जिसमें 4 समीक्षा होती है, लेकिन एपीआई 2 या 3 बार के लिए 0 देता है तो कुछ समय बाद यह 4 समीक्षा देता है।

मुझे इसके पीछे कारण पता नहीं है। मैंने यह भी देखा कि हम Google खोज पृष्ठ और Google+ में समीक्षा देख सकते हैं। वही आप Google+ और Google मानचित्र में कई स्थानों पर समीक्षा लिख ​​सकते हैं।

और समीक्षाओं की जांच करने के लिए, मैं Google प्लस यूआरएल का उपयोग कर रहा हूं। तो क्या यह संभव है कि समीक्षा मौजूद है, लेकिन किसी अन्य क्षेत्र में (जैसे 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+ में नहीं) की तरह? यदि हां, तो इस मामले में मैं यूआरएल प्राप्त कर सकता हूं जहां समीक्षा पोस्ट की जाती है?
(2) क्या सभी समीक्षाएं Google में सिंक हैं?
(3) या मैं अपने कोड में कुछ गलत कर रहा हूं?

+1

क्या आप अपना कोड उस स्थान आईडी के साथ अपडेट कर सकते हैं जिसमें असंगत संख्याओं की समीक्षा है, ताकि हम पुन: निर्माण कर सकें? – Alexey

+0

@Alexey, google place id गतिशील है, उपरोक्त समस्या एकाधिक संपत्ति के लिए हो रही है। exa: 'https: // plus.google.com/101511264527346460079/about' और' https://www.google.co.in/webhp?ie=utf-8&oe=utf-8&gws_rd=cr&ei=clA-VeieGIORuQSj54DwCw#q = + केंसिंगटन + 665 + वाशिंगटन + सेंट + बोस्टन% 2 सी + एमए + 02111' आप देख सकते हैं कि google + पर कोई समीक्षा नहीं है।लेकिन Google खोज में, आप देख सकते हैं कि इस संपत्ति के लिए 43 Google समीक्षाएं हैं। – DS9

+0

बस एक साइड नोट, Google स्थल API आपको केवल 5 समीक्षाओं के एक JSON सरणी [dde (https://developers.google.com/places/webservice/details) के रूप में अधिकतम 5 समीक्षा दिखा सकता है। – ilpaijin

उत्तर

5

मुझे लगता है कि मुझे पता है कि समस्या कहां है।

कारण आप उस स्थान के बारे में मौजूदा समीक्षा क्यों नहीं देख सकते हैं ऐसा लगता है कि ऐसा लगता है कि इसके लिए 2 google + खाते हैं; फर्क सिर्फ इतना है (कम से कम पहले मैंने देखा है), एमए 02116 बनाम एमए ज़िप कोड में है 02111.

पर एक नज़र डालें:

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

और

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

आप देख सकते हैं, एक दूसरे में एक ही समीक्षा आप search page

में देखते हैं

और the finder में "केन्सिंगटन, 665 वाशिंगटन सेंट, बोस्टन, एमए 02116, स्टेटी यूनिटी" पता डालकर, मुझे एक जगह से अलग जगह मिलती है।

अब

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

में यह पिछले एक का उपयोग कर मैं तो प्लेस एपीआई json जवाब में 5 समीक्षा प्राप्त कर सकते हैं।

+0

बहुत बहुत धन्यवाद। सिर्फ उत्सुक, आप कैसे पा सकते हैं कि दो google + खाते हैं? – DS9

+0

आपका स्वागत है। हालांकि कुछ खास नहीं है, मैंने अभी खेला है और इसे देखा है। – ilpaijin

संबंधित मुद्दे