2011-09-13 11 views
8

मेरे पास मेरी वेबसाइट पर एक समान बटन है (जो उपयोगकर्ताओं के लिए एफबी प्रशंसक पृष्ठ पसंद है)।आईएफ उपयोगकर्ता को कैसे जांचें फेसबुक पेज को पहले ही पसंद आया है?

यदि उपयोगकर्ता क्लिक करता है, तो मैं यह देखने के लिए जांच करता हूं कि यहां तक ​​कि यहां तक ​​कि निकाल दिया गया है (ईवेंट सदस्यता लें), और फिर उन्हें कुछ सामग्री प्रदर्शित करें।

क्या मैं सच के साथ मदद की सराहना करते हैं होता है निम्नलिखित: उपयोगकर्ता फेसबुक में लॉग इन किया है और वे पहले से ही पेज की तरह, मैं इसे प्रदर्शित करना चाहते हैं

हैं "आप पहले से ही एक प्रशंसक रहे हैं ! " और सामग्री दिखाओ। (बजाय प्रदर्शित बटन की तरह धूसर)

या

उपयोगकर्ता फेसबुक में लॉग इन नहीं कर रहा है और वे की तरह बटन पर क्लिक करें, मैं इसे "प्रदर्शित करने के लिए आप पहले से ही एक हैं चाहते हैं पंखा!" और सामग्री दिखाओ। (बटन की तरह ग्रेयड आउट प्रदर्शित करने के बजाए)

संपादित करें: दोस्तों, मैंने एसओ पर इसका शोध किया है और मुझे समान प्रश्न मिल गए हैं लेकिन काफी कुछ नहीं है। हो सकता है कि मैं गलत हूं लेकिन अगर कोई मेरी सटीक समस्या का वर्णन करने वाले व्यक्ति को एक लिंक प्रदान कर सकता है, तो सवाल के मुकाबले यह बहुत उपयोगी होगा। मैं निम्नलिखित जाँच कर ली है:
Check if the user is connected to facebook and then check if he liked a page
Facebook Like Box: How to detect if user already liked the page?
Facebook LIKE button hiding when page is already LIKED by user
How to check whether user has liked the page or not using php/javascript
Check if user already likes fanpage

+0

मैं डाउनवॉट्स में से एक नहीं हूं, लेकिन यदि आप अपने प्रश्न में उस टिप्पणी को शामिल करते हैं तो लोग मदद करने के इच्छुक हो सकते हैं; कुछ प्रश्नों से लिंक जो आपने पहले से ही कोशिश की है और कहें कि वे क्यों मदद नहीं करते हैं, इसलिए लोगों को पता है कि आपने इसे पहले से ही करने की कोशिश की है। – Matt

+0

+1 @ मैट: धन्यवाद, मैंने इसे अपडेट किया है। – Gazzzzza

+0

संभावित डुप्लिकेट [यह कैसे जांचें कि कोई उपयोगकर्ता फेसबुक के एपीआई का उपयोग करके मेरा फेसबुक पेज या यूआरएल पसंद करता है] (http://facebook.stackoverflow.com/questions/5093398/how-to-check-if-a-user-likes- my-facebook-page-or-url-use-facebooks-api) – Igy

उत्तर

3

आप फेसबुक php एपीआई का उपयोग करते हैं। मैं इस संक्षिप्त कार्य के साथ आया हूं कि आप base_facebook.php फ़ाइल के अंदर क्लास बेसफ़ेसबुक में शामिल कर सकते हैं।

public function userIsFan() { 
    $sr = $this->getSignedRequest(); 
    if($sr && is_array($sr)){ 
     if(array_key_exists('page', $sr)){ 
      return $sr['page']['liked'] == 1; 
     } 
    } 
    return 0; 
} 
+4

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

+0

यह अब और काम नहीं कर रहा है। हस्ताक्षर किए गए अनुरोध में पृष्ठ पसंद के बारे में जानकारी नहीं है। – lukyer

0

सुनिश्चित करें कि आप xfbml उपयोग कर रहे हैं, इस एक काम करता है मुझे

FB.Event.subscribe('auth.authResponseChange', function(response) { 
     FB.api('/me/likes/[page_id]', 
      function(response) { 
       //console.log(response); - see what the response is on your console. 
       if(response.data[0]) 
       //use script to display your content alert("Liked"); 
       else 
       // just do nothing, display like button alert("Not yet liked"); 
      } 
     ); 

    }); 

page_id, आईडी नहीं अपने पृष्ठ के नाम हो जाएगा के लिए आईडी पता लगाने के लिए, बस की यात्रा http://graph.facebook.com/[your fb page name]

उम्मीद है कि यह भविष्य में किसी की मदद करेगा।

+1

इस संभावना को 'user_likes' को कार्य करने की विस्तारित अनुमति की आवश्यकता है। – ceejayoz

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