2012-02-04 17 views
6

मैं एक खुली ग्राफ गतिविधि पोस्ट करने की कोशिश कर रहा हूं। वास्तव में यह एक स्थिर। एचटीएमएल फ़ाइल के साथ काम कर रहा है। लेकिन अगर मैं यूआरएल पैराम्स के साथ यूआरएल को इंगित करता हूं तो मुझे एक त्रुटि मिलती है। दोनों पृष्ठों पर स्रोत कोड 100% समान है, मेरा विश्वास करो।डायनामिक ओपनग्राफ ऑब्जेक्ट यूआरएल काम नहीं कर रहा है

# Dynamic call 
/me/somesandbox:drive?car=http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car 

# Static call 
/me/somesandbox:drive?car=http://www.domain.com/static_car.html 

त्रुटि:
"क्योंकि एक आवश्यक संपत्ति 'ओग: प्रकार' प्रकार 'वेबसाइट' का URL 'http://www.domain.com/object/?og:type' पर ऑब्जेक्ट अमान्य है। प्रदान नहीं किया गया प्रकार के 'स्ट्रिंग'"

यदि आप त्रुटि देखते हैं, तो आप देखेंगे कि फेसबुक को पूरा यूआरएल नहीं मिला है। पैराम गायब हैं, ठीक है। कृपया सहायता कीजिए!

+0

बच निकले उद्धरण चिह्नों के साथ टैग * मूल्य * के आस-पास प्रयास करें। – Lix

+0

नहीं, यह एक यूआरएल है। ब्राउज़र और फ़ेसबुक यूआरएल लिंटर – fabian

+0

में काम करता है लेकिन स्पष्ट रूप से आप ब्राउज़र या लिटर में इसका उपयोग नहीं कर रहे हैं। क्या आपने सोचा है कि जिस भाषा में आप कोडिंग कर रहे हैं वह विचारों से बच निकल सकता है? – Lix

उत्तर

4

ओपन ग्राफ ऑब्जेक्ट यूआरएल जिसका उपयोग आप करने का प्रयास कर रहे हैं यह है?

http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car 

मेरा अनुमान है, के बाद से फेसबुक पहले से ही action names (अर्थात graph.facebook.com/me/recipebox:cook?recipe=) के लिए : पेट के पात्रों को पार्स है, वे अपने स्वयं के पैरामीटर के रूप में उपयोग करने के लिए सुरक्षित नहीं हो सकता है।

इसके अलावा, कुछ भ्रम हो सकता है: जहां तक ​​मुझे पता है, ऑब्जेक्ट्स के ओपन ग्राफ गुण इस og:title=Some%20car जैसे यूआरएल में पास नहीं किए गए हैं। वे open graph meta tags: <meta property="og:title" content="Some car" /> के माध्यम से यूआरएल को इंगित करते हुए पृष्ठ में वास्तव में अनिश्चित हैं। तो यदि आप यूआरएल के साथ ऑब्जेक्ट गुण सेट करने का प्रयास कर रहे हैं, तो यह काम नहीं करेगा।

अपने ओपन ग्राफ ऑब्जेक्ट यूआरएल का परीक्षण करने के लिए Lint Debug Tool का उपयोग करना न भूलें!

शायद आपको यह पता है, और meta टैग सेट करने के लिए बस यूआरएल के जीईटी पैरामीटर का उपयोग कर रहे हैं। कुछ इस तरह?

<meta property="og:title" content="<? echo $_GET['og:title'] ?>" /> 

यदि यह मामला है, बस इसे : कोलन के बिना प्रयास करें। वहाँ some debate के बारे में है कि क्या वे वैसे भी यूआरएल में सुरक्षित हैं, लेकिन अगर फेसबुक भी उन्हें पार्स करने है यह सबसे सुरक्षित हो जाएगा बस, उन्हें बाहर छोड़ने के लिए इस तरह:

// http://www.domain.com/object/?ogtype=somesandbox:car&ogtitle=Some%20car 
<meta property="og:type" content="<? echo $_GET['ogtype'] ?>" /> 
<meta property="og:title" content="<? echo $_GET['ogtitle'] ?>" /> 

मैं इस परीक्षण नहीं किया, बस कुछ सुझाव दे रही है कोशिश करना। सौभाग्य!

+0

मुझे इसके बिना प्रयास करने दें: – fabian

+0

इसे बदल दिया, लेकिन एक ही त्रुटि। – fabian

0

फेसबुक यह देखने के लिए यह अच्छा टूल है कि फेसबुक क्या देखता है: https://developers.facebook.com/tools/debug बस यूआरएल डालें और डीबग देखें।

मत भूलें, इन मेटा टैग को अनुभाग में रखा जाना है।

0

समझ गया। @thaddeusmt: पहले से ही सही रास्ते पर था।

जो यह बहुत महत्वपूर्ण है - बेशक यह है - आपको encodeURIComponent (yoururl?= वार्स) के साथ

हल

आप इस तरह अपने यूआरएल पार कर लेते हैं:

/me/somesandbox:drive?car= http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car

वस्तु यूआरएल एन्कोड करने के लिए सुनिश्चित करें। जैसे जावास्क्रिप्ट

encodeURIComponent(http://www.domain.com/object/?og:type=somesandbox:car&og:title=Some%20car) 
संबंधित मुद्दे