2012-12-18 120 views
23

我已經使用LinkedIn API並需要有關從Linkedin API註銷的指導,一旦我單擊註銷到我的應用程序中。我曾嘗試下面的代碼:從LinkedIn註銷API

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

我也曾嘗試:通過調用session_destroy()

最後

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

我想在瀏覽器中刪除會話,我想我得到了答案從堆棧溢出this question。我沒有得到任何正確的解決方案。誰能告訴我解決方案?

+0

[下文稱這個?](http://developer.linkedin.com/documents/inauth-inevent-and-inui) –

+0

我可以看到你的DOM查詢是不正確的,基本上這不是能夠附加onclick事件。你需要在id:$('#logout-link')查詢一個DOM元素的時候添加一個hash#點擊(...) –

回答

0

看來你onclick不會被調用,嘗試做:

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

OR

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

和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

我已經通過alert();進入該方法後,顯示Alert。 – MUTHURAJ

+0

@MUTHURAJ查看已編輯的代碼,如果代碼中isAuthorized()的條件爲try()'ing,以查看IN對象是否真的存在,並且用戶實際上是由linkedin授權的,那麼希望這能起作用 –

0

我覺得你的JavaScript被執行之前,用戶會被重定向,所以試試這種方式? JavaScript代碼:

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

HTML代碼:

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

我已經嘗試過您的解決方案了但沒有得到它的權利 – MUTHURAJ

+0

告訴我發生了什麼,功能的第一行是否執行,是頁面重定向到'logout.php' – Dexter

1

請確保您有包括

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

您的主頁上,即你在哪裏註銷。

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

這裏似乎有兩個不同的問題。除非您調用其功能,否則您無法從服務器端腳本註銷鏈接。當你登陸logout.php你應該有你的session_destroy();在頁面頂部。確保logout.php上沒有任何session_start()

-2

在代碼中使用session_destroy()。

0

您需要在嘗試調用IN.User.logout()之前加載LinkedIn JavaScript平臺,您應該在JavaScript庫完全加載後才能運行代碼。

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