2011-09-08 17 views
7

मैं अपने मौजूदा एएसपीनेट एप्लिकेशन में फेसबुक लॉगिन जोड़ रहा हूं। मैंने अपनी लॉगिन स्क्रीन में एक फेसबुक लॉगिन बटन जोड़ा है। अब, मैं फेसबुक के लॉगिन बटन पर क्लिक करता हूं और आईई 9 में यह लाइन 22: if(a.params)b.fbCallID=a.id;फेसबुक लॉगिन "अनुमति अस्वीकार"

पर अपवाद के बाद भी मैं फेसबुक लॉगिन स्क्रीन देखता हूं और लॉग इन कर सकता हूं, और मुख्य ब्राउज़र में खिड़की मुझे auth.login घटना मिलती है, इसलिए मैं इसके साथ रह सकता हूं।

लेकिन, अगर मैं पहले से ही फेसबुक में लॉग इन हूं, तो मैं पेज पर आ गया हूं और फेसबुक लॉगिन बटन पर क्लिक करता हूं, मैं खाली पॉपअप विंडो को संक्षेप में देखता हूं, फिर मुझे टेली क्लाइंट-साइड अपवाद मिलता है, और फिर मुझे कोई ईवेंट नहीं मिलता है मुख्य ब्राउज़र विंडो में, इसलिए मुझे नहीं पता कि उपयोगकर्ता लॉग इन है या नहीं, इसलिए मैं उन्हें किसी अन्य पृष्ठ पर रीडायरेक्ट नहीं कर सकता।

मैंने चैनल यूआरएल चाल की कोशिश की लेकिन इससे मदद नहीं मिली।

कोई सुझाव क्या हो रहा है?

+0

[all.js में अनुमति अस्वीकृत त्रुटि] (के संभावित डुप्लिकेट http://facebook.stackoverflow.com/questions/7280007/permission-denied-error-in- ऑल-जेएस) –

उत्तर

2

मैं इस हैक कि मेरे लिए समस्या का समाधान हो पाया; इस लाइन को जोड़ने के सही होने के बाद आप FB.init() फोन:

// Hack to fix http://bugs.developers.facebook.net/show_bug.cgi?id=20168 for IE7/8/9 
FB.UIServer.setLoadedNode = function (a, b) { 
           FB.UIServer._loadedNodes[a.id] = b; 
          }; 
0

ऐसा होने का कारण (वेबसाइटों और दस्तावेजों से मैंने पढ़ा है, और मुझे विश्वास है, मैंने बहुत कुछ पढ़ा है) यह है कि आईई क्रॉस-साइट जावास्क्रिप्ट को अस्वीकार करता है, और यह all.js को सैंडबॉक्स को पार करने के रूप में देखता है सीमा। एक अच्छी चर्चा here मिल सकती है।

कुछ लोग कहते हैं कि adding the channel.html file works, लेकिन हमने इसके सभी स्वादों की कोशिश की है, और कोई सफलता नहीं मिली है। (याद रखें कि http या https को अनुरोध भेजने वाले पृष्ठ से मेल खाना चाहिए।)

माइक्रोसॉफ्ट makes reference to this same issue और उनकी सलाह साइट को विश्वसनीय साइटों (जो मदद नहीं करता) में जोड़ना है। पुरानी सलाह (पिछले वर्ष से) CP="HONK" को अपनी कॉम्पैक्ट गोपनीयता नीति के रूप में जोड़ना है, लेकिन मुझे लगता है कि बग तय किया गया था, और यह कुकी से संबंधित था।

हमारे साथ क्या हो रहा है यह है कि लॉगिन वास्तव में जारी रहता है, और कॉलबैक ठीक से कॉल किया जाता है, लेकिन मुख्य थ्रेड जो लॉगिन कॉल के बाहर पूरा होना चाहिए निष्पादन (त्रुटि के कारण) को रोकता है। इसलिए, लॉगिन कॉल के बाद लॉगिन के बाहर कोई भी कार्य निष्पादित करने में विफल रहता है।

अगर किसी के पास अपवाद फेंकने या इस मुद्दे के लिए कामकाज बनाने के लिए आईई प्राप्त करने का कोई तरीका नहीं है, तो मैं इसे प्राप्त करने के लिए बेताब हूं। किसी भी जानकारी की जरूरत है मैं प्रदान करने के लिए खुश हो जाएगा, लेकिन एक नमूना यहाँ है:

enter code here 
code before login here... 
FB.login(function(response){ 
    callback stuff here... This part fires. 
}); 
main thread stuff here... This fails because of permission denied error. 
+0

"मुख्य धागा" का संदर्भ देते समय आपका क्या मतलब है? जेएस एकल-थ्रेडेड है, और यदि यह किसी निश्चित त्रुटि को हिट करता है तो यह कोड निष्पादित करना बंद कर सकता है। – Andrey

+0

दरअसल, मुझे लगता है कि मैं कुछ पर हो सकता हूं - अब मैं फेसबुक लॉगिन बटन की केवल ऑनलॉग घटना का उपयोग कर रहा हूं, और यह दोनों मामलों के लिए ठीक काम करता है जब उपयोगकर्ता पहले ही एफबी में लॉग इन होता है और जब नहीं। मुझे अभी भी "अनुमति अस्वीकृत" अपवाद मिलता है लेकिन यह कार्यक्षमता को रोकता नहीं है। एक बार परीक्षण किए जाने के बाद मैं समाधान पोस्ट करूंगा और मैं सुनिश्चित करता हूं कि यह काम कर रहा है। – Andrey

+0

जावास्क्रिप्ट इस तरह बहुसंख्यक नहीं है, लेकिन कॉलबैक कुछ तरीकों से मल्टीथ्रेडिंग की नकल करता है। जिसे मैं "मुख्य धागा" (एफबी.लॉगिन कॉल के बाद आता है) को निष्पादित किया जा रहा है, लेकिन फिर भी कॉलबैक पूरा होने तक चलता है। मुझे यकीन नहीं है क्यों, लेकिन हमने कोड में अलर्ट के साथ इसे सत्यापित कर लिया है। – MontyThreeCard

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