0

我正在創建應用程序,用於彙總來自不同社交網絡配置文件的數據。因此,我創建了一個界面,客戶可以選擇允許我的應用程序訪問哪個社交網絡配置文件。界面有一個用戶點擊來授權應用程序的按鈕或者一個按鈕,如果用戶改變了她/他關於授予我的應用程序權限的想法,它會撤銷授予我的應用程序的特權。Facebook JavaScript SDK - getLoginStatus始終返回未知

我的流程如下:

  • 在頁面加載請問Facebook在
    • 用戶是否登錄如果用戶在一個選項來斷開提供
    • 如果用戶登錄沒有登錄(或狀態未知< - 這很重要),提供登錄選項。

這就像它應該。但一件奇怪的事情發生。

起初

FB.getLoginStatus(loginStatusCallback, true); 

function loginStatusCallback(response) { 
    if(response.status == 'not_authorized') { 
     .... 
    } else if(response.status == 'unknown') { 
     .... 
    } else { 
     .... 
    } 
} 

對於登錄我用

FB.login(loginCallback); 

登錄成功,我採取相應的行動。但是,如果我重新加載頁面response.status將是'未知'即使我已登錄到Facebook和我的應用程序在登錄到Facebook登錄的應用程序的列表。據我瞭解SDK文檔'未知'如果我沒有登錄到Facebook(這相當於沒有在我的應用程序連接)應該是響應。所以,即使用戶已經登錄,他也會被困擾再次登錄,這是不可接受的。

+0

正如你所看到的 - Facebook的往返參數設置爲true。 SDK已正確初始化。問題不在應用程序端,而在SDK端。 – Rouz

回答

3

看起來問題不在我身邊,因爲它沒有修改代碼。問題是,我曾經使用FB.logout(),而不是隻是從應用程序Facebook註銷我只是認爲我退出。

重新登錄我並沒有改變一件事。我已經清除了瀏覽器中的所有cookie,並重新登錄並且問題不復存在。

從申請斷開連接的用戶我不使用FB.logout(),而不是我撤銷權限與

FB.api("/me/permissions", "delete", logoutCallback); 

現在一切工作像它應該...但對我來說,這看起來像SDK的問題。 ..

相關問題