2010-08-12 15 views
9

यदि वे एक ही पृष्ठ का जिक्र कर रहे हैं लेकिन एक अलग # स्ट्रिंग के साथ फेसबुक अजेक्स वेब ऐप में 'पसंद' बटनों का क्या बनाता है?फेसबुक 'पसंद' बटन और # यूआरएल तार?

क्या यह उन्हें 'पसंद' के लिए अलग-अलग पृष्ठों के रूप में व्यवहार करता है?

उदाहरण के लिए

अगर मैं किसी क्लिक पर 4 मिलती है:

mysite.com/articles#story1 
mysite.com/articles#story2 
mysite.com/articles#story3 
mysite.com/articles#story4 

क्या उपयोगकर्ताओं के न्यूज़फ़ीड में ऊपर आ जाएगा

4 people like mysite.com/articles 

या

dave likes mysite.com/articles#story1 
tom likes mysite.com/articles#story2 
ben likes mysite.com/articles#story3 
nick likes mysite.com/articles#story4 

क्या एफबी और # तारों के बारे में सोचने के लिए कोई और चीज है?

उत्तर

7

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

तो ऐसा कहकर, मुझे लगता है कि फेसबुक की तरह बटन अलग हैश तारों के लिए अलग-अलग व्यवहार नहीं करते हैं। फेसबुक प्रलेखन (जो अधिकतर बेकार है) पर एक नज़र इस बात का जिक्र नहीं करता है, लेकिन फेसबुक डेवलपर मंच इस बात की पुष्टि करते हैं: http://forum.developers.facebook.com/viewtopic.php?pid=240151

हालांकि, सभी खो नहीं गए हैं। तुम्हें पता है, एक तरह बटन का URL निर्दिष्ट कर सकते हैं तो बस एक ही पेज के एसईओ के अनुकूल यूआरएल के लिए URL सेट: http://developers.facebook.com/docs/reference/plugins/like

अद्यतन - टिप्पणी

तो से स्पष्ट है, अब हम जानते हैं कि आपके पास हैश स्ट्रिंग यूआरएलएस के स्थिर संस्करण। पहले, आप सबसे अधिक संभावना बटन की तरह पृष्ठ पर यह कोड के साथ दे रहे थे:

XFBML:

<fb:like show_faces="false" width="450"></fb:like> 

इसके बजाय, आप URL के एसईओ संस्करण को निर्दिष्ट किया जाना चाहिए।

XFBML: उदाहरण के लिए, जब आप mysite.com/articles#story4 पर हैं, कोड की तरह दिखना चाहिए

<fb:like href="mysite.com/articles/story/4" show_faces="false" width="450"></fb:like> 
+1

क्या होगा यदि आप अजाक्सिंग कर रहे हैं- नए मेटा डेटा में अन्य AJAX'd सामग्री के साथ क्लिक करें? मैं आपके साथ एफबी दस्तावेज़/समुदाय की खराब स्थिति के बारे में सहमत हूं! – Haroldo

+1

@ हैरॉल्डो, AJAX जावास्क्रिप्ट है, और curl द्वारा उपयोग नहीं किया जाता है। इसे उस दस्तावेज़ में होना जरूरी है जो मूल रूप से किसी भी जावास्क्रिप्ट मैनिपुलेशन से पहले लोड किया जाता है। खोज इंजन के समान नियम। –

+0

यह इतना नहीं है कि ये एसईओ-अनुकूल लिंक हैं लेकिन अधिक है कि वे सही पृष्ठ की लोडिंग के लिए महत्वपूर्ण हैं। वे आवश्यक हैं, वैकल्पिक नहीं। –

1

फेसबुक सब कुछ हैश टैग निम्नलिखित छोड़ देंगे। आप क्या करने की जरूरत # प्रतीक% में यह एन्कोडिंग बचने अपना अनुरोध भेजने के है 23

<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmysite.com%2Farticles%2F%23story1" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:px"> 
0

फेसबुक ज्यादातर *, Google's ajax-crawling spec का समर्थन करता है ताकि अगर टुकड़ा एक विस्मयादिबोधक चिह्न के साथ शुरू होता है, तो फेसबुक के लिए नीचे दिए गए रूपांतरण करना होगा अनुरोध, ताकि सर्वर खंड प्राप्त कर सके और अपेक्षित सामग्री की सेवा कर सके।

https://myapp.com/#!/post/2 =>https://myapp.com/?_escaped_fragment_=/post/2

(गूगल की कल्पना के अनुसार उपयोगकर्ता बदसूरत URL दिखाई देना चाहिए कभी नहीं, इसलिए मुझे लगता है कि फेसबुक हमेशा "विस्मयादिबोधक चिह्न" प्रारूप में इन url को संग्रहीत कर देगा।)

इन अनुरोधों के लिए उचित सामग्री की सेवा करना अक्सर गैर-तुच्छ होता है। अधिक here देखें।

* मेटा टैग ट्रिगर काम नहीं करता है। मैंने 2012/08/18 को इसका परीक्षण किया।

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