2012-12-19 16 views
8

की संपत्ति 'userID' नहीं पढ़ सकता है मैं फेसबुक जावास्क्रिप्ट एसडीके का उपयोग कर प्राधिकरण सुविधा को लागू करने की कोशिश कर रहा हूं। जब मैं इसे चलाता हूं, तो यह कंसोल की जांच करता है और मुझे त्रुटि दिखाई देती है।फेसबुक जावास्क्रिप्ट एसडीके uncaught TypeError: अपरिभाषित

uncaught TypeError: Cannot read property 'userID' of undefined 

कोड स्निपेट

<div id="fb-root"></div> 
<!-- Load the Facebook JavaScript SDK --> 
<script src="//connect.facebook.net/en_US/all.js"></script> 
<script> 
var appId = 'APP_ID'; 
var uid; 

// Initialize the JS SDK 
FB.init({ 
appId: '413026618765431', 
cookie: true, 
}); 

// Get the user's UID 
FB.getLoginStatus(function(response) { 
uid = response.authResponse.userID ? response.authResponse.userID : null; 
}); 

function authUser() { 
FB.login(function(response) { 
    uid = response.authResponse.userID ? response.authResponse.userID : null; 
}, {scope:'email,publish_actions'}); 
} 
</script> 

उत्तर

4

एप्लिकेशन के लिए अधिकृत नहीं है, तो प्रतिक्रिया ऑब्जेक्ट नहीं एक authResponse संपत्ति में शामिल होंगे - इसलिए त्रुटि आप देख रहे हैं।

तुम क्या चाहते

uid = response.authResponse 
    ? response.authResponse.userID 
    : null; 

या बस

uid = response.authResponse && response.authResponse.userID || null; 

या बस

uid = response.authResponse && response.authResponse.userID; 
1

आप response.authResponse.userId की कोशिश की?

1

यहाँ जो मुझे (iOS और Android) के लिए काम करता कोड की पंक्ति है:

var uid = response.authResponse.userID || response.authResponse.userId;

userID एंड्रॉयड के लिए अपरिभाषित था, लेकिन userId iOS के लिए अपरिभाषित है।