2015-10-08 49 views
5

我實施Facebook登錄按鈕,在https://developers.facebook.com/docs/facebook-login/android開發人員指南使用配置文件和電子郵件讀取權限描述。的Android SDK的Facebook登錄4.5.0,註銷問題無效的密鑰散列錯誤,而試圖重新登錄

當我按下登錄按鈕,Facebook應用程序打開了,然後我就可以登錄,並且可以從Facebook獲取用戶數據。在此之後,Facebook按鈕將自動變爲註銷按鈕。當它被按下時,它會註銷。到目前爲止,它運作良好。

一旦Facebook登出我的應用程序端完成,並要重新登錄與Facebook按鈕,Facebook的失敗,關鍵哈希錯誤。如果我轉到Facebook應用的帳戶設置,並從列表中刪除我的應用,然後重新登錄返回成功。

這裏我也Android Facebook app logout issue嘗試過的解決方案,但它也不能工作。 要清除,我用這個代碼(在AccessTokenCache類中找到共享首選來電姓名):

SharedPreferences fbSharedPreferences = this.getSharedPreferences("com.facebook.AccessTokenManager.SharedPreferences", 0); 
    if (fbSharedPreferences != null) { 
     fbSharedPreferences.edit().clear().commit(); 
    } 

我使用Facebook的SDK 4.5。我正在測試一個真實的Facebook帳戶。我的應用程序密鑰和哈希值在Facebook應用程序設置中設置。

P.S.問題標題受Facebook Login-Logout Issue Invalid Key Hash Error, While Trying to Login Again(沒有解決方案)的影響。我有同樣的問題

回答

2

,你需要刪除的Facebook應用程序的應用程序,然後註銷。以下功能將完成這一訣竅。

public void disconnectFromFacebook() { 

    if (AccessToken.getCurrentAccessToken() == null) { 
     return; // already logged out 
    } 

    new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest 
      .Callback() { 
     @Override 
     public void onCompleted(GraphResponse graphResponse) { 

      LoginManager.getInstance().logOut(); 

     } 
    }).executeAsync(); 
} 
+0

是啊,當我從Facebook帳戶設置中手動刪除應用程序的工作原理。 – enver

+0

的確,上面的代碼會從Facebook應用程序列表中刪除應用程序。 –

+0

這是一個在這個意義上的作品。但是一個缺點是它使得訪問令牌無效並且不再可用。 – enver