फेसबुक प्राधिकरण समस्या

वोट
3

मैं एक फेसबुक एप्लिकेशन पर काम कर रहा हूँ और वहाँ कुछ मैं सिर्फ कैसे अपने प्राधिकरण प्रणाली काम करता है के बारे में समझ नहीं कर रहा हूँ है।

हमारी बुनियादी सेटअप यह है

कैनवास यूआरएल = domain.com/facebook

यह एक FBML Iframe तत्व यह है कि domain.com/facebook/app को जो एक HTML पृष्ठ है कि एक फ्लैश आवेदन पेश करता है अंक के साथ एक सरल पृष्ठ है।

फ्लैश आवेदन हमारे आवेदन सर्वर से अतिरिक्त डेटा का अनुरोध करता है - उन अनुरोधों में से कुछ (जैसे आईडी दोस्त की एक सूची के रूप में) फेसबुक डेटा के लिए पूछना।

इस जो एक फेसबुक उदाहरण (उनके पीएचपी पुस्तकालय) बनाता है और उनके एपीआई के लिए आवश्यक कॉल करता है और डेटा देता है एक PHP पृष्ठ है - तो फ्लैश तो domain.com/resources/facebook/friends से एक अनुरोध करता।

हालांकि, (फ्लैश) के द्वारा इस URL पर अनुरोध की पुष्टि नहीं करता, तो यह तो अपनी प्रवेश पर पुनः निर्देशित किया जाता है जब उसके बाद ही दो मापदंडों के साथ वापस पुनर्निर्देश मेरी कैनवास यूआरएल - auth_token और अगले । तो अनुरोध मान्य है, लेकिन रीडायरेक्ट टूट जाता है फ्लैश कॉल।

जाने get तो, मैं यह पता लगाने की कैसे इन अन्य API कॉल करने के (जब खुद को गदा फेसबुक API कॉल) से फेसबुक-vaildated जा कोशिश कर रहा हूँ।

27/01/2009 को 19:14
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
1

ठीक है, मैंने पता लगा लिया।

यह पता चला है के रूप में, फ्लैश पहले से ही रीडायरेक्ट इस प्रकार है - सब मुझे क्या करना आवश्यक (कैनवास URL पर) का पता लगाने जब वहाँ प्रमाणीकरण अनुरोध (की मौजूदगी से उल्लेख किया गया था auth_token और अगले ) और शामिल किसी GET पैरामीटर के रूप में auth_token जब मैं (मूल रूप से, मूल अनुरोध करने पर auth_token आगे) URL के आगे कर दिया।

तो, क्या मैं ऊपर कहा के विपरीत, रीडायरेक्ट नहीं तोड़ा फ्लैश कॉल - यह सिर्फ पर्याप्त डेटा नहीं था एक वैध अनुरोध किया जाना है।

27/01/2009 को 21:55
का स्रोत उपयोगकर्ता

वोट
1

कोड "() require_login" रेखा के नीचे के बजाय डालकर का समाधान

if (isset($_GET['auth_token'])) {
 $sess_data=$facebook->api_client->call_method('auth.getSession',array('auth_token'=>$_GET['auth_token']));
 $facebook->set_user($sess_data['uid'],$sess_data['session_key'],$sess_data['expires']);
 $user=$sess_data['uid'];
}
if (!$sess_data) {
 $user=$facebook->require_login();
}
24/01/2010 को 21:01
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more