2011-09-13 18 views
25

मैंने वेबसाइट पर एक Google +1 बटन जोड़ा है, लेकिन मैं इसे काउंटर प्राप्त करना चाहता हूं ताकि मैं इसके बारे में कुछ गणित कर सकूं। क्या +1 बटन बनाने की मानक विधि द्वारा बनाए गए आईफ्रेम को दर्ज करना संभव है या क्या मुझे कुछ समायोजन करने की आवश्यकता है?मैं Google प्लस +1 बटन का काउंटर कैसे प्राप्त करूं?

<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> 
<g:plusone></g:plusone> 

मैं इस लिंक की कोशिश की है: 1, लेकिन यह बहुत ही सटीक

उत्तर

26

यदि आप कर्ल/file_get_contents/readfile/wget या बाहरी यूआरएल लाने के लिए कुछ रास्ता एक्सेस कर सकते हैं, तो यह काफी सरल है।

लोड निम्न URL: https://plusone.google.com/_/+1/fastbutton?url=URLENCODED_URI (अपडेट URL, नीचे नोट देखें *)

URLENCODED_URI साइट पर आप हैं, उदाहरण के लिए +1 की संख्या पता करने के लिए इच्छा है http://www.google.com (http% 3A% 2F% 2Fwww.google.com)

उदाहरण के लिए, यूआरआई https://plusone.google.com/_/+1/fastbutton?url=http://www.google.com/ (UPDATED यूआरआई) लाए जाने और window.__SSR = {'c': 32414.0 ,'si' की पहली घटना का पता लगाने। इसके लिए अधिमानतः regexp का उपयोग करें, लेकिन मैं आपको और आपके चुने हुए प्रोग्रामिंग भाषा (सर्वर पक्ष या क्लाइंट साइड) में कार्यान्वयन छोड़ दूंगा।

'c' के बाद फ्लोट नंबर + 1 की साइट है। Google.com के लिए यह 32,414 है। फ्लोट के बारे में चिंता न करें, आप इसे सुरक्षित रूप से एक पूर्णांक में परिवर्तित कर सकते हैं।

* अद्यतन: यूआरएल को अद्यतन किया गया है क्योंकि पुराना यूआरएल 404 से शुरू हुआ था। याद रखें, यह उम्मीद है क्योंकि यह एक अनौपचारिक विधि है। कोई आधिकारिक विधि मौजूद नहीं है (अभी तक)।

+0

स्पष्ट रूप से यह जाने का एक तरीका है। मैं इसे बाद में परिणाम देने और परिणाम पोस्ट करने दूंगा। – seemann

+0

क्या आप मुझे बताएंगे कि आपने इसे कैसे समझ लिया, या आपको यह जवाब कहां मिला? – seemann

+2

मैंने कुछ साइटों पर प्लस बटन के कारण नेटवर्क यातायात का निरीक्षण किया (क्रेडिट सफारी और क्रोम में सुंदर वेबकिट इंस्पेक्टर के पास जाता है) और पता चला कि वे सभी एक निश्चित तरीके से व्यवहार करते हैं, और वे सभी ने एक निश्चित यूआरएल कहा जो बदले में एचटीएमएल और जावास्क्रिप्ट लौटा दिया। मैंने पाया कि जावास्क्रिप्ट में + 1 की संख्या है, गीलेर की परवाह किए बिना + 1 की संख्या 32k, 'सैकड़ों' या 14. –

4

आप div कि गिनती प्रदर्शित करता है का मूल्य हड़पने के लिए एक कॉलबैक फ़ंक्शन का उपयोग नहीं किया जा सका है?

function count() { 
    var count = $('#aggregateCount').html(); 
} 

    <g:plusone callback="count()"></g:plusone> 

मैं इस बंद आधारित कर रहा हूँ bubble annotation button, मैं यह परीक्षण नहीं किया है, लेकिन कुछ इस तरह काम करना चाहिए।

+0

जहां तक ​​मैं कॉलबैक विशेषता को समझता हूं, इसे केवल उपयोगकर्ता द्वारा बटन पर क्लिक करने के बाद ही बुलाया जाता है। – seemann

+0

आह, फिर एक अधिभार के बारे में क्या? – barro32

+0

मुझे लगता है कि उस घटना को @ barro32 नहीं मिल रहा है। उपलब्ध घटनाएं सभी उपयोगकर्ता इंटरैक्शन से संबंधित हैं। – seemann

2

एक शुद्ध क्लाइंट-साइड समाधान जो Google प्लस काउंटर पाने के लिए मेरे लिए काम करता है, निम्नानुसार है। इसे एपीआई कुंजी की आवश्यकता नहीं है।

var url = "http://www.yoursite-to-be-counted.com"; 
var data = { 
    "method":"pos.plusones.get", 
    "id": url, 
    "params":{ 
     "nolog":true, 
     "id": url, 
     "source":"widget", 
     "userId":"@viewer", 
     "groupId":"@self" 
    }, 
    "jsonrpc":"2.0", 
    "key":"p", 
    "apiVersion":"v1" 
    }; 
    $.ajax({ 
    type: "POST", 
    url: "https://clients6.google.com/rpc", 
    processData: true, 
    contentType: 'application/json', 
    data: JSON.stringify(data), 
    success: function(r){ 
     setCount($(".google-plus-count"), r.result.metadata.globalCounts.count); 
    } 
    }); 

    var setCount = function($item, count) { 
    if (count) { 
     $item.text(count); 
    } 
    }; 

तब मैं

<div class="google-plus-count"></div> 

क्रेडिट यहाँ this जवाब देने के लिए चला जाता है के साथ कुछ html है।

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