5

के माध्यम से स्पष्ट रूप से साझा की गई खुली ग्राफ कहानी के लिए गतिशील रूप से वर्णन उत्पन्न करें, मैंने इस विषय पर किए गए सभी शोधों में से 9 0% पुराना है, जो मुझे विश्वास दिलाता है कि हाल में हुए बदलाव हुए हैं ओपन ग्राफ कहानियों को स्पष्ट रूप से साझा करने के संबंध में फेसबुक जेएस एसडीके।FB.ui शेयर संवाद

function postToFB(desc){ 
FB.ui({ 
    method: 'share_open_graph', 
    action_type: 'mynamespace:myaction', 
    action_properties: JSON.stringify({ 
     myobject: "myobjectid" 
    }) 
}, function(response){}); 
} 

इस के साथ समस्या यह है कि यह केवल सेटिंग्स मैं अपने एप्लिकेशन सेटिंग की फेसबुक ओपन ग्राफ़ अनुभाग में सेट किया है साथ MyObject साझा करने का प्रयास करेंगे है: मैं निम्नलिखित कोड है। मैं एक ही ऑब्जेक्ट का उपयोग करना चाहता हूं, लेकिन प्रत्येक बार साझा किए जाने पर गतिशील 'desc' चर के साथ वर्णन को बदलें। क्या कोई यह जानता है कि इसे कैसे पूरा किया जाए? मैं अपने ऐप सेटिंग्स के अपने फेसबुक ओपन ग्राफ सेक्शन में कैप्शन को स्थिर रूप से सेट कर सकता हूं, लेकिन मुझे इसके बजाए इसे हर बार गतिशील रूप से सेट करने की आवश्यकता है।

मैंने अतिरिक्त कुंजी/मूल्य जोड़े के लिए फेसबुक जेएस एसडीके के माध्यम से खोज की है जिसे action_properties में जोड़ा जा सकता है, लेकिन एसडीके जानकारी इस संबंध में बहुत सीमित है।

अद्यतन

मैं कोड संशोधित करने के 2 कॉल, एक नई वस्तु की जानकारी के साथ कहानी प्रकाशित करने के लिए वस्तु और दूसरा बनाने के लिए शामिल करने के लिए।

function postToFB(desc){ 
FB.api(
    'me/objects/mynamespace:myobject', 
    'post', 
    { 
    object: { 
     "app_id": myappid, 
     "type": "mynamespace:myobject", 
     "url": "myurl", 
     "title": "mytitle", 
     "image": "myimgurl", 
     "description": desc 
     } 
    }, 
    function(response) { 
     console.log(response); 
     FB.ui({ 
      method: 'share_open_graph', 
      action_type: 'mynamespace:myaction', 
      action_properties: JSON.stringify({ 
       myobject: response.id 
     }) 
    }, function(r){}); 
}); 
} 

हालांकि, इस सवाल पर टिप्पणी के अनुसार: Facebook object API - duplicate objects created एक फेसबुक स्टाफ सदस्य ने कहा कि इस दृष्टिकोण फेसबुक द्वारा अनुमोदित किया जाना नहीं होगा क्योंकि एक कार्रवाई एक उपयोगकर्ता द्वारा दो पदों का उत्पादन नहीं कर सकते हैं, जो इस कोड अब कोड यह कर देता है। कोई ऑब्जेक्ट फेसबुक उपयोगकर्ता के गतिविधि लॉग पर पोस्ट करेगा, और कोई इसे गतिविधि लॉग और समाचार फ़ीड पर पोस्ट करेगा।

यह अच्छा होगा अगर मैं सिर्फ एक कॉल कर सकता हूं और यह निर्धारित कर सकता हूं कि myobject विवरण FB.ui फ़ंक्शन से ही होना चाहिए। क्या किसी को भी यह करना आता है?

उत्तर

5

मैंने इसे समझ लिया। मेरी मुख्य समस्या यह थी कि मैं अपने/ऑब्जेक्ट्स (जो उपयोगकर्ता के गतिविधि लॉग में एक ईवेंट पोस्ट करेगा) पोस्ट कर रहा था जब मुझे ऐप/ऑब्जेक्ट्स पर पोस्ट करना चाहिए था (जो ऑब्जेक्ट बनायेगा लेकिन ईवेंट पोस्ट नहीं करेगा)। मैं नया आईडी के साथ वस्तु पोस्ट करने के लिए जे एस स्क्रिप्ट इस्तेमाल कर सकते हैं

$request = new FacebookRequest( 
null, 
'POST', 
'/app/objects/mynamespace:myobject', 
array(
     'access_token' => 'myaccesstoken', 
    'object' => json_encode(array(
     'app_id' => myappid, 
      'url' => 'myurl', 
      'title' => 'mytitle', 
      'image' => 'myimg', 
      'description' => 'mydesc' 
     )) 
) 
); 
$response = $request->execute(); 
$obj = $response->getGraphObject(); 
echo $obj->getProperty('id'); 

वहां से: एप्लिकेशन पर पोस्ट करने के बाद से/कुछ भी पहुंच टोकन की आवश्यकता है, मैं PHP में सर्वर साइड पर होने की प्रारंभिक कॉल बदलना पड़ा उपयोगकर्ता की फ़ीड के लिए।

आशा है कि आपको अपने जैसे ही इसे समझने की कोशिश करने में डेढ़ दिन खर्च करने से रोकें।

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