2010-01-19 13 views
10

मैं इस कोड का उपयोग मेरी शख्सियत दीवार पर स्थिति अद्यतन करने में सक्षम हूँ: http://facebook.com/authorize.php?api_key=MYAPPAPIKEY&v=1.0&ext_perm=publish_streamस्थिति के लिए एक फेसबुक फैन पेज को अधिकृत करना अपडेट

यह:

require_once 'facebook-platform/php/facebook.php'; 
$facebook = new Facebook('APP API KEY','APP SECRET KEY'); 
$user_id = 'MY USER ID'; 
$facebook->api_client->users_setStatus('This is a new status'); 

... इस पते का उपयोग प्राधिकृत करने के बाद कोड, हालांकि, मेरी फेसबुक पेज वॉल पर स्थिति अपडेट करने के लिए काम नहीं करता है। क्या ऐसे अतिरिक्त पैरामीटर हैं जिन्हें मैं googleize को निर्दिष्ट करने के लिए authorize.php url में जोड़ सकता हूं, न केवल मेरी प्रोफ़ाइल?

या, फैन पेज वॉल के अपडेट पोस्ट करने के बेहतर तरीके हैं?

धन्यवाद!

+0

आपको शायद पहले अपने पृष्ठ के लिए ऐप को अधिकृत करना होगा। आप आरईएसटी क्वेरी से प्रतिक्रिया की जांच कर सकते हैं। यदि यह आपको 401/403 के साथ जवाब देता है तो ऐप प्रोफ़ाइल को अपडेट करने के लिए अधिकृत नहीं है। – funwhilelost

उत्तर

21

मैंने Facebook desktop application documentation से परामर्श करके समस्या हल की (भले ही यह एक वेब एप्लिकेशन है)।

मैं पहली बार इस यूआरएल के साथ ऑफ़लाइन पहुंच देना ('MYAPIKEY' की जगह) था: तब http://www.facebook.com/login.php?api_key=MYAPIKEY&connect_display=popup&v=1.0&next=http://www.facebook.com/connect/login_success.html&cancel_url=http://www.facebook.com/connect/login_failure.html&fbconnect=true&return_session=true&session_key_only=true&req_perms=read_stream,publish_stream,offline_access

, मैं 'publish_stream' प्रदान करने के लिए पृष्ठ के लिए अनुमति इस यूआरएल के साथ ('MYAPIKEY' की जगह और 'की जरूरत THEPAGEID '): http://www.facebook.com/connect/prompt_permissions.php?api_key=MYAPIKEY&v=1.0&next=http://www.facebook.com/connect/login_success.html?xxRESULTTOKENxx&display=popup&ext_perm=publish_stream&enable_profile_selector=1&profile_selector_ids=THEPAGEID

मैं तो फैन पेज दीवार को प्रकाशित करने के लिए निम्नलिखित कोड का उपयोग कर सकता:

require_once 'facebook-platform/php/facebook.php'; 
$facebook = new Facebook(MYAPIKEY, MYAPISECRET); 
try{ 
    $facebook->api_client->stream_publish('INSERT_STATUS_HERE',null,null,null,'THEPAGEID'); 
}catch(Exception $o){ 
    print_r($o); 
} 
+2

मेरे भगवान, आप कमाल हैं। मैं पृष्ठ दिमाग को कैसे प्रदान करना है, यह जानने का प्रयास करके अपने दिमाग को जल रहा हूं ... आप मेरे नायक –

+0

हैं, मैंने इस पर काम करने की कोशिश की लेकिन मुझे FATAL त्रुटि मिली (घातक त्रुटि: किसी सदस्य फ़ंक्शन stream_publish() पर कॉल करें एक गैर वस्तु वस्तु ...)। मैंने ऑफ़लाइन प्राधिकरण और publ_stream अनुमतियां दी हैं। मैं एक ही कोड का उपयोग कर रहा हूँ। – noobcode

+0

ग्रेट। बहुत उपयोगी, धन्यवाद! मैं अपनी पेज की दीवार पर पोस्ट करने में सक्षम हूं। दुर्भाग्य से, मैं केवल अपनी पोस्ट देखने में सक्षम हूं, जो वास्तव में उपयोगी नहीं है। जब कोई और पृष्ठ की दीवार को देखता है, तो एपीआई का उपयोग करके पोस्ट किया गया पोस्ट नहीं दिखाता है। किसी को भी यह मुद्दा है? – Savageman

0

ऊपर के आधार पर, मैं कहां की कोशिश की ग्राफ एपीआई पर क्वेरी स्ट्रिंग पैरामीटर के टा जोड़ी यूआरएल अधिकृत करते हैं, और यह इस काम करता है प्रकट होता है:

https://graph.facebook.com/oauth/authorize?client_id=[APP_ID]&redirect_uri=[REDIRECT_URL]&scope=publish_stream&enable_profile_selector=1&profile_selector_ids=[PAGE_IDS]

संपादित करें: मन कभी नहीं, ऊपर प्रदर्शित करता है सभी यूआई सही ढंग से, लेकिन अभी भी "(# 200) मिलता है उपयोगकर्ता ने इस क्रिया को करने के लिए एप्लिकेशन को अधिकृत नहीं किया है "त्रुटि --- यह स्पष्ट है कि यह काम नहीं करता है क्योंकि एक्सेस टोकन में मेरा उपयोगकर्ता आईडी है लेकिन पृष्ठ की आईडी नहीं है।

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