2015-12-06 13 views
8

Vorrei aggiungere la possibilità di accesso LinkedIn al mio progetto. Ho seguito il tutorial data sulla LinkedIn developer page e finito con il seguente codice, roba veramente di base da quella tutorial:Login LinkedIn con esempio di base non funzionante

<!-- linkedin login --> 
<script type="text/javascript" src="//platform.linkedin.com/in.js"> 
    api_key: [MY_API_KEY] {~n} 
    authorize: false {~n} 
    onLoad: onLinkedInLoad {~n} 
</script> 

<!-- linkedin login play --> 
<script type="text/javascript"> 

    // Setup an event listener to make an API call once auth is complete 
    function onLinkedInLoad() { 
     IN.Event.on(IN, "auth", getProfileData); 
    } 

    // Handle the successful return from the API call 
    function onSuccess(data) { 
     console.log(data); 
    } 

    // Handle an error response from the API call 
    function onError(error) { 
     console.log(error); 
    } 

    // Use the API call wrapper to request the member's basic profile data 
    function getProfileData() { 
     IN.API.Raw("/people/~").result(onSuccess).error(onError); 
    } 

</script> 

non ti dispiace il {~n} come io sto usando dust.js per il rendering della pagina e ho hanno bisogno che passino gli argomenti allo script di LinkedIn.

Quindi, viene visualizzato il pulsante di accesso, questo significa che LinkedIn è stato in grado di connettersi correttamente alla mia chiave API, ma la console Chrome mi dà il seguente errore: Uncaught Error: Could not execute 'onLinkedInLoad'. Please provide a valid function for callback.. Poiché questo è l'esempio indicato nella pagina del tutorial, non so cosa possa esserci di sbagliato. Anche se dichiaro il blocco delle funzioni di login di LinkedIn prima della chiamata a LinkedIn in.js, ottengo lo stesso errore.

Penso che sia un errore molto facile da individuare, ma non posso davvero dire cosa sto sbagliando.

risposta

2

Questo sta accadendo perché stai chiamando onLinkedInLoad() nella sezione head, e se stai lavorando su più pagine. Verrà chiamato su ogni pagina anche se non ha dati dalla chiamata API (o semplicemente non stai effettuando alcuna chiamata sulla pagina in cui appare questo errore).

Prova this`

// Removing event listener by calling IN.Event.on() outside of onLinkedInLoad() 

    IN.Event.on(IN, "auth", getProfileData); 


// Handle the successful return from the API call 
function onSuccess(data) { 
    console.log(data); 
} 

// Handle an error response from the API call 
function onError(error) { 
    console.log(error); 
} 

// Use the API call wrapper to request the member's basic profile data 
function getProfileData() { 
    IN.API.Raw("/people/~").result(onSuccess).error(onError); 
} 

` E sì rimuovere "onLoad: onLinkedInLoad {~ n}" dalla prima chiamata di script

+0

Qualche tempo passava e io non sono sicuro che questo è ancora attuale /lavoro. Ho trovato una soluzione diversa al momento, ma grazie per l'input. – Masiar

+0

Questa è una soluzione funzionante in questo momento .. perché ero bloccato sulla stessa cosa di come eri ..... e poi ho trovato questa pagina ... ma non poteva essere di alcun aiuto per me ... quindi ho pensato di aggiornare questo .... e inoltre è meglio tardi che mai;) –

Problemi correlati