2011-06-07 11 views
7

का उपयोग करके एक फेसबुक ईवेंट बनाएं क्या प्रोग्रामर रूप से किसी उपयोगकर्ता फेसबुक पेज पर कोई ईवेंट बनाने के लिए JQuery फ़ंक्शन का उपयोग करने का कोई तरीका है?JQuery और ग्राफ एपीआई प्रोग्रामेटिक

<input type="button" value="Add to Facebook" onclick="document.location='http://www.facebook.com/dialog/oauth?client_id=<AppID>&redirect_uri=<redirecturi>&scope=create_event,offline_access,manage_pages&response_type=token'"> 

कौन सा पैरामीटर ACCESS_TOKEN और expires_in साथ रीडायरेक्ट पृष्ठ के लिए सही ढंग से प्रस्तुत करती है: मैं एक ऐप्लिकेशन है जो के माध्यम से create_event अनुमतियों के लिए उपयोगकर्ता पूछता है बनाया है। पेज डेटा पार्स आउट कर निम्नलिखित कोड का उपयोग करता है (कम सुरुचिपूर्ण, लेकिन मैं सिर्फ यह एक परीक्षण के रूप में काम करने के लिए प्राप्त करने के लिए कोशिश कर रहा हूँ)

<script> 

$(document).ready(function(){ 
    var url = window.location.href; 
    var fbParameters = url.substring(url.indexOf('#')+1,url.length); 
    var accesstoken;  

    if(fbParameters.indexOf("access_token=")>=0){ 
     accesstoken = fbParameters.substring(fbParameters.indexOf("access_token=")+("access_token=").length,fbParameters.length); 
     accesstoken=accesstoken.substring(0,accesstoken.indexOf('&')); 
     console.log(accesstoken); 
    } 

    var params = {'access_token':accesstoken,'name':'test','location':'someplace','start_time':'1322719200'} 

    $.getJSON('https://graph.facebook.com/me/events?callback=?',params,function(data){console.log(data)}); 

}); 

</script> 

मैं भी JQuery $ .post का उपयोग कर की कोशिश की है और मैन्युअल रूप से भी इस परीक्षण घटना को बनाने का प्रयास करने के लिए यूआरएल में प्रवेश किया। यह रिटर्न:

XMLHttpRequest cannot load https://graph.facebook.com/me/events?. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin. 

मैंने यूआरएल/घटनाओं के बजाय यूआरएल आईडी/घटनाओं में यूआरएल को संशोधित करने का भी प्रयास किया है। फेसबुक लौट रहा है:

({ 
    "data": [ 

    ] 
}); 

यदि मैं यूआरएल से "घटनाओं" को हटा देता हूं, तो यह अपेक्षित उपयोगकर्ता जानकारी तक पहुंचता है। क्या किसी को पता है कि क्या मैं वास्तव में ऐसा करने की कोशिश कर रहा हूं? मुझे लगता है कि मुझे कुछ याद आ रही है।

उत्तर

6

ग्राफ़ एपीआई आरईएसटी कार्यों को कॉल करना वास्तव में शुद्ध उत्पत्ति के साथ शुद्ध JQuery के साथ अच्छी तरह से काम नहीं करता है (http://en.wikipedia.org/wiki/Same_origin_policy)।

फेसबुक प्रदान करने वाले जावास्क्रिप्ट एसडीके का उपयोग करना एक बेहतर विचार है, यह फेसबुक डोमेन पर कार्यों को निष्पादित करने के लिए एक छिपी हुई आईफ्रेम बनाता है और घटनाओं को आपके पृष्ठ पर वापस भेजता है, जो सभी प्रमाणीकरण और घटनाओं को पारित करने के लिए काफी अच्छी तरह से व्यवहार करता है आप।

आप कोड नमूने, प्रलेखन और फेसबुक डेवलपर वेबसाइट पर के टुकड़े मिल सकता है (http://developers.facebook.com/docs/reference/javascript/) और यहाँ (http://developers.facebook.com/tools/console/)

उदाहरण कोई ईवेंट बनाने के लिए लगता है कि:

var event = { 
    name: 'Name of your event', 
    description: 'Description of your event', 
    location: 'Location of event',       
    start_time: Math.round(new Date().getTime()/1000.0), // Example Start Date 
    end_time: Math.round(new Date().getTime()/1000.0)+86400 // Example End Date 
}; 

FB.api('/me/events', 'post', event, function (result) { 
    console.log(result); 
}); 
+0

आप ग्राफ़ एपीआई के माध्यम से ईवेंट नहीं बना सकते हैं। https://developers.facebook.com/docs/graph-api/reference/event देखें – Meekohi

0

अच्छी तरह से आपके कोड को देखने के बाद मैंने पाया कि पैराम्स वैरिएबल में आप "accesstoken" का उपयोग कर रहे हैं जो "access_token" होना चाहिए। फेसबुक पर ईवेंट बनाने के लिए $ .post का भी उपयोग करें। "Start_time" के लिए मानक दिनांक/समय प्रारूप का भी उपयोग करें। अगर यह काम करता है तो मुझे बताएं।

+0

पहुँच टोकन लिखने में कोई त्रुटि थी मैंने इसे ठीक करने के विभिन्न तरीकों से घूमते समय प्रतिलिपि बनाई थी, मुझे वास्तव में यह ज्यादातर समय सही था। इसके अलावा, फेसबुक विभिन्न प्रकार की प्रारंभ/समाप्ति समय प्रविष्टियों को स्वीकार करेगा और उन्हें सही तरीके से परिवर्तित करेगा। मेरी पोस्ट में, मैंने वर्णन किया कि मैंने दोनों पोस्ट का उपयोग करने की कोशिश की और जेसन को कोई फायदा नहीं हुआ। मुद्दा वास्तव में है कि आपको फेसबुक पर एक फॉर्म पोस्ट करना होगा, और इसके ऊपर के उत्तर द्वारा वर्णित एक ही उत्पत्ति के साथ समस्याएं हैं। –

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