2011-01-22 9 views
22

जब आप फेसबुक में एक यूआरएल टाइप करते हैं, तो यह स्वचालित रूप से "एक लिंक पोस्ट करें" सुविधा के साथ आता है। अधिकांश वेबसाइटों के साथ, यह लिंक और विवरण के साथ-साथ पृष्ठ पर कहीं से खींचने वाली छवियों का चयन स्वचालित रूप से लोड करता है। क्या किसी को किसी भी एफबी एपीआई आदि के बिना हमारी साइट के लिए उसी सुविधा को कार्यान्वित करने का विचार है .. बस जावास्क्रिप्ट या JQuery?फेसबुक लिंक पूर्वावलोकन कैसे होता है?

+1

मैंने अभी उस उद्देश्य के लिए क्लाइंट-साइड लाइब्रेरी जारी की है। इसे देखें: [बूटस्ट्रैप-लिंकpreview] (https://github.com/Ekito/bootstrap-linkpreview) –

उत्तर

16

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

इसके अलावा, यह काफी सरल है: प्रदान की गई यूआरएल से कनेक्ट करने के लिए अपनी पसंद की भाषा के लिए एक HTTP क्लाइंट लाइब्रेरी का उपयोग करें, फिर title टैग निकालने के लिए एक HTML पार्सिंग लाइब्रेरी का उपयोग करें, body में टेक्स्ट का एक महत्वपूर्ण टुकड़ा पहचानें टैग करें, और img टैग स्रोत निकालें जो सबसे उपयुक्त प्रतीत होता है।

एक बार आपका सर्वर किसी पृष्ठ के बारे में जानकारी निकालने में सक्षम हो जाता है, तो यह AJAX के माध्यम से इसे कॉल करने के लिए एक काफी सरल अभ्यास है।

+2

विक्टर सही है। किसी अन्य सर्वर से किसी पृष्ठ को लोड और संसाधित करने का कोई तरीका नहीं है। आपको HTML पार्सिंग निष्पादित करने वाले पृष्ठ पर एक AJAX कॉल करना है जो आपको आवश्यक जानकारी देता है। – Sergi

+1

हाँ, पूर्वावलोकन को दिखाने का यही एकमात्र तरीका होना चाहिए। मुझे छवि क्या रूचि है। पृष्ठ के प्रतिनिधि के रूप में दिखाने के लिए सबसे उपयुक्त छवि का पता लगाने के लिए कोई तंत्र है? – SexyBeast

13

@ केशन।

मैंने अपनी वेबसाइट पर PHP और jQuery के साथ एक फेसबुक लिंक पूर्वावलोकन विकसित किया है। एक नज़र डालें ... स्रोत कोड मुफ्त है ... मैंने यहां पूरा कोड पोस्ट नहीं किया क्योंकि वे कई फाइलें हैं ... लेकिन अगर आप यहां पोस्ट करने के लिए कोड पसंद करते हैं, तो मुझे बताएं और मैं पोस्ट करूंगा।

यह Github पर उपलब्ध है https://github.com/LeonardoCardoso/Facebook-Link-Preview

Facebook Link Preview - PHP + jQuery

+1

धन्यवाद !! में देख लूंगा। वास्तव में – Keshan

+0

। लेकिन वे कुछ कोड नहीं हैं। यह गिथब https://github.com/LeonardoCardoso/Facebook-Link- पूर्वावलोकन पर भी उपलब्ध है जहां कई लोगों ने फोर्क किया है। हालांकि मेरी वेबसाइट इस प्लगइन के बारे में पूर्ण स्पष्टीकरण प्रदान करती है, लेकिन मैं वहां यात्रा प्रवाह उत्पन्न करने की कोशिश नहीं कर रहा हूं। –

7

मुझे लगता है कि निम्न चरणों के

  • शामिल कर रहे हैं लिखित पाठ
  • मिलने वाले लिंक से पिछले लिंक मिल में लिंक से जुड़ जावास्क्रिप्ट का उपयोग करना पाठ में (एफबी केवल अंतिम लिंक के लिए दिखाता है)
  • AJAX का उपयोग करके इस लिंक को भेजें एक सर्वर साइड पृष्ठ पर etail (PHP/एएसपी/JSP आदि)
  • सर्वर साइड पेज आवश्यक डेटा (मेटा टैग से) हो जाता है सहित
    • शीर्षक (अधिमानतः ओपन ग्राफ og:title अगर से <title>
    • विवरण लापता (अधिमानतः ओपन ग्राफ og:description अगर <meta name="description" ....
    • छवियाँ (अधिमानतः ओपन ग्राफ og:image से लापता अगर <img src=....
  • से लापता पीएचपी में आप प्राप्त कर सकते हैं एचटीएमएल ई डेटा या तो curl या file_get_contents और ऊपर वर्णित आवश्यक डेटा के लिए पार्स का उपयोग कर। अन्य भाषा के बारे में निश्चित नहीं है।
  • इस प्रकार AJAX अनुरोध में परिणाम दिखाएं।

इसके अतिरिक्त मुझे लगता है कि एफबी डाटाबेस को संग्रहीत करता है, एक बार डेटाबेस में और वहां 1 प्रश्न पूछता है। इससे उन्हें तेजी से परिणाम प्राप्त करने में मदद मिलती है और इसलिए संग्रहित डेटा से छवि और विवरण उत्पन्न करने के समान साझा और पसंद किया गया लेख।

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

3

आश्चर्य की बात यह है कि ऐसा करने से वहां कई सेवाएं नहीं हैं। जैसा कि पिछली टिप्पणी पोस्ट की गई है, आपका ब्राउज़र सर्वर तत्व के बिना ऐसा नहीं कर सकता है।

तो, कार्यप्रवाह वास्तव में यह है:

  1. यह एक मान्य URL
  2. व्हिज़ कि या पहले से आरक्षित सेवा करने के लिए AJAX के माध्यम से URL मान अपने खुद के रोल है परीक्षण करने के लिए डाला पाठ पार्स।
  3. सेवा (मेरा .NET में लिखा गया है) पृष्ठ को स्मृति में लोड करता है और इसे एक डोम पार्सर के साथ पार करता है। मैं एचटीएमएल एजिलिटी पैक का उपयोग कर सकता हूं जो आप एंगलशर्प इत्यादि का उपयोग कर सकते हैं
  4. आपको ओपन ग्राफ मेटा तत्वों को निकालने की आवश्यकता है (आमतौर पर) मानक मेटा शीर्षक/विवरण आदि पर वापस आना।
  5. ओजी भलाई के सभी पैक करें और AJAX
  6. के माध्यम से इस मॉडल को वापस करें पूर्वावलोकन के रूप में स्क्रीन पर लौटाए गए मान रखें।
  7. तो स्वीकार किए जाते हैं अपने DB में मूल्यों को सम्मिलित करने के तर्क लिखने

आप सर्वर वस्तु बनाने के लिए नहीं कर रहे हैं, वहाँ तीसरे पक्ष की सेवाओं कि पुनर्प्राप्ति बिट्स कर सकते हैं:

http://unfurl.oroboro.com/

https://guteurls.de/

भाग्य का सबसे अच्छा।

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