2012-12-18 15 views
23

Ho lavorato con l'API di LinkedIn e ho bisogno di indicazioni su come disconnettersi dall'API di Linkedin dopo aver fatto clic su Disconnetti nella mia applicazione. Ho provato il seguente codice:Esci dall'API di LinkedIn

function closeSession(){ 
    IN.User.logout(); 
} 
<a href="logout.php" class="myButton" onclick="closeSession()" id="logout-link">Logout In LinkedIn</a> 

Ho anche provato:

$('logout-link').click(function() { 
    IN.Event.on(IN,'logout', function() { 
     window.location.href = [site-logout-url]; 
    }); 
    IN.User.logout(); 
}); 

ho cercato di distruggere la sessione in un browser chiamando session_destroy()

Infine, ho provato la risposta che ho ricevuto da Stack Overflow per this question. Non ho avuto la soluzione giusta. Qualcuno può dirmi la soluzione?

+0

[A riferiti questo?] (Http://developer.linkedin.com/documents/inauth-inevent-and-inui) –

+0

posso vedere che la query DOM non è corretto e in fondo non è in grado di allegare l'evento onclick. Devi aggiungere un hash # quando stai interrogando un elemento DOM con id: $ ('# logout-link'). Click (...) –

risposta

0

Sembra che il tuo onclick non viene chiamata, prova a fare:

function closeSession(){ 
    IN.User.logout(); 
    return true; 
} 
<a href="logout.php" class="myButton" onclick="return closeSession();" id="logout-link">Logout In LinkedIn</a> 

O

<a href="#" class="myButton" onclick="closeSession()" id="logout-link"> 
    Logout In LinkedIn 
</a> 

e JS

function closeSession() { 
    if (typeof IN === 'object' && typeof IN.User === 'object' && IN.User.isAuthorized()) { 
    //user logged in linkedin 
    //call linkedin logout with websites logout function as callback 
    alert("I m inside linkedin object check.."); //do you see this 
    IN.User.logout(logout); 
    } 
    else { 
    logout(); 
    } 
} 
function logout() { 
    window.location.href = "URL_TO_YOUR_LOGOUT.PHP"; 
} 
+0

L'ho controllato mettendo alert(); in quel metodo, è stato visualizzato Avviso. – MUTHURAJ

+0

@MUTHURAJ vedi il codice modificato, prova alert() all'interno se la condizione di isAuthorized() nel codice per vedere se l'oggetto IN esiste effettivamente e l'utente è effettivamente autorizzato con linkedin, spero che funzioni –

0

Penso che si viene reindirizzati prima javascript viene eseguito, quindi provi in ​​questo modo? codice JavaScript:

function closeSession(){ 
    IN.User.logout(); 
    location.href="logout.php"; 
} 

codice HTML:

<span style="cursor:pointer" onclick="closeSession()">Logout In LinkedIn</span> 
+0

Ho provato la tua soluzione ora ma non ha capito bene – MUTHURAJ

+0

dimmi cosa è successo, se la prima riga di funzione è stata eseguita o meno, la pagina è stata reindirizzata a 'logout.php' – Dexter

1

Assicurarsi di avere includere

<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script> 

sulla vostra Home Page, vale a dire dove si stanno registrando fuori.

0
To make it work 



<script type="text/javascript" src="http://platform.linkedin.com/in.js"> 
api_key: <?php echo sfConfig::get('app_linkedin_api_key'); ?> 
authorize: true 
</script> 
<script> 
IN.Event.on(IN, "logout", function() {onLinkedInLogout();}); 

function onLinkedInLogout(){ 
// User is logged out 
window.location.href='<?php echo url_for("@homepage");?>' 
} 
</script> 
<a href="#" onclick="IN.User.logout()"><?php echo __("Logout");?></a> 

<div class="signin"><script type="in/Login" data-onAuth="onLinkedInAuth"></script> 

<script type="text/javascript"> 

function onLinkedInAuth() { 
IN.API.Profile("me") 
.fields("id") 
.result(function(me) { 
var id = me.values[0].id; 
//Do stuff like redirect... 
}) 
} 
</script> 
0

Sembra che ci siano 2 diversi problemi qui. Non è possibile disconnettersi dal collegamento dal proprio lato server a meno che non si chiami la loro funzione. Quando atterri su logout.php dovresti avere il tuo session_destroy(); in cima alla pagina. Assicurati che non ci sia session_start() su logout.php

-2

usa session_destroy() nel codice.

0

È necessario caricare la piattaforma JavaScript di LinkedIn prima di provare a chiamare IN.User.logout(), è necessario eseguire il codice solo dopo che la libreria javascript è stata caricata completamente.

<script type="text/javascript" src="http://platform.linkedin.com/in.js"> 
    api_key: mykey 
    authorize: true 
    onLoad: onLoad 
</script> 

<script type="text/javascript"> 
function onLoad() { 
    try { 
    IN.User.logout(); 
    } catch (err) { 
    console.log(err); 
    } 
    location.href="index.php"; 
} 
</script> 
0
<script type="text/javascript" src="http://platform.linkedin.com/in.js"> 
api_key: mykey 
authorize: true 
onLoad: onLoad 
</script> 

      <script type="text/javascript"> 
       function onLoad() { 
        try { 
       IN.User.logout(); 
         } catch (err) { 
        console.log(err); 
          } 
        location.href="index.php"; 
        } 
        </script>