2012-12-19 15 views
8

Sto tentando di implementare una funzione di autorizzazione utilizzando l'SDK JavaScript di Facebook. Quando lo eseguo, controlla la console e vedo l'errore.Facebook Javascript SDK uncaught TypeError: Impossibile leggere la proprietà 'userID' di undefined

uncaught TypeError: Cannot read property 'userID' of undefined 

codice snippet

<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> 

risposta

4

Se l'applicazione non è autorizzato, l'oggetto risposta sarà non contenere una proprietà authResponse - da qui l'errore che stai vedendo.

quello che vuoi è

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

o semplicemente

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

o semplicemente

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

Hai provato response.authResponse.userId?

1

qui è la linea di codice che funziona per me (iOS e Android):

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

userID è stato definito per Android, ma userId è indefinito per iOS.

Problemi correlati