2010-06-11 22 views
5

मैं एक फेसबुक प्रशंसक पृष्ठ पर एक गैलरी के लिए एक छवि अपलोड करने के कोशिश कर रहा हूँ यहाँ करने के लिए एक तस्वीर अपलोड कर रहा है मेरी कोड इस प्रकार दूर है,फेसबुक

$ch = curl_init(); 

     $data = array('type' => 'client_cred', 'client_id' => 'app_id','client_secret'=>'secret_key',' redirect_uri'=>'http://apps.facebook.com/my-application/'); // your connect url here 

     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/oauth/access_token'); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

     $rs = curl_exec($ch); 
     curl_close($ch); 

     $ch = curl_init(); 
     $data = explode("=",$rs); 
     $token = $data[1]; 

     $album_id = '1234'; 
     $file= 'http://my.website.com/my-application/sketch.jpg'; 
     $data = array(basename($file) => "@".realpath($file), 
     //filename, where $row['file_location'] is a file hosted on my server 
      "caption" => "test", 
      "aid" => $album_id, //valid aid, as demonstrated above 
      "access_token" => $token 
     ); 

     $ch2 = curl_init(); 
     $url = "https://graph.facebook.com/".$album_id."/photos"; 
     curl_setopt($ch2, CURLOPT_URL, $url); 
     curl_setopt($ch2, CURLOPT_HEADER, false); 
     curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch2, CURLOPT_RETURNTRANSFER, false); 
     curl_setopt($ch2, CURLOPT_POST, true); 
     curl_setopt($ch2, CURLOPT_POSTFIELDS, $data); 
     $op = curl_exec($ch2); 

जब मैं $ टोकन गूंज, मैं हो रही हो रहे हैं टोकन, लेकिन जब मैं स्क्रिप्ट चलाता हूं, तो मुझे यह त्रुटि मिलती है, {"त्रुटि": {"टाइप": "OAuthAccessTokenException", "message": "इस संसाधन का अनुरोध करने के लिए एक एक्सेस टोकन आवश्यक है।"}, मुझे कोई विचार नहीं है यह क्यों कर रहा है!

असल में मैं उस कोड में क्या कर रहा हूं, कर्ल के साथ एक्सेस टोकन प्राप्त कर रहा है, और फिर, मेरे एल्बम में भी कर्ल के माध्यम से फोटो अपलोड कर रहा है, लेकिन मुझे यह त्रुटि मिल रही है!

किसी भी मदद की सराहना की जाएगी, धन्यवाद!

उत्तर

4

ठीक है, यह काम कर रहा है, यहाँ कोड है, यह मानते हुए आप एक वैध सत्र के लिए जा रहा है।

$token = $session['access_token']; 

    //upload photo 
    $file= 'photo.jpg'; 
    $args = array(
    'message' => 'Photo from application', 
    ); 
    $args[basename($file)] = '@' . realpath($file); 

    $ch = curl_init(); 
    $url = 'https://graph.facebook.com/me/photos?access_token='.$token; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $args); 
    $data = curl_exec($ch); 

इस सत्र धारकों गैलरी के लिए निर्दिष्ट छवि अपलोड करेंगे, अगर वहाँ एक मौजूद नहीं है यह एक एल्बम बनाएगा, यह भी आप के रूप में ऊपर का प्रदर्शन सत्र सरणी के माध्यम से टोकन पहुँच सकते हैं। उम्मीद है कि यह किसी की मदद करेगा।

+0

दोस्त आप चट्टान ... मदद के लिए धन्यवाद !!!! –

+0

यह एक खुशी है, खुशी है कि मैं मदद कर सकता हूँ! – Odyss3us

0

शायद आपके एप्लिकेशन में आवश्यक अनुमतियां नहीं हैं।

OAuth के माध्यम से अनुरोध अनुमतियों के लिए, का उपयोग गुंजाइश तर्क अपने प्राधिकरण अनुरोध में, और सभी अनुमतियों का अनुरोध करना चाहते का एक अल्पविराम पृथक सूची में शामिल हैं।

http://developers.facebook.com/docs/authentication/permissions

+0

मैं वास्तव में अपने सत्र में publ_stream अनुमति का अनुरोध कर रहा हूं, लेकिन अभी भी कुछ नहीं। – Odyss3us

+0

आप एल्बम पर छवि पोस्ट करते हैं, क्या आप उपयोगकर्ता_फोटोस का भी अनुरोध नहीं करना चाहिए? – Zyava

+0

अच्छा बिंदु, मैं कोशिश करूँगा! मैं आपको पोस्ट कर दूंगा! इस टिप्पणी के लिए Thanx अब तक! – Odyss3us

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