2015-10-08 19 views
5

Tôi đã thực hiện nút đăng nhập Facebook như được mô tả trong https://developers.facebook.com/docs/facebook-login/android hướng dẫn dành cho nhà phát triển có quyền đọc hồ sơ và email.Android Facebook SDK 4.5.0 Đăng nhập-Đăng xuất phát hành Lỗi băm khóa không hợp lệ, khi cố gắng đăng nhập lại

Khi tôi nhấn nút đăng nhập, ứng dụng Facebook sẽ mở ra và sau đó tôi có thể đăng nhập và có thể lấy dữ liệu người dùng từ Facebook. Sau thời điểm này, nút Facebook sẽ tự động chuyển sang nút Đăng xuất. Và khi nó được nhấn, nó sẽ đăng xuất. Cho đến nay, nó hoạt động tốt.

Sau khi đăng xuất Facebook xong ở phía ứng dụng của tôi và muốn đăng nhập lại bằng nút Facebook, Facebook không thành công với lỗi băm khóa. Nếu tôi đi đến cài đặt tài khoản trong ứng dụng Facebook và xóa ứng dụng của tôi khỏi danh sách thì đăng nhập lại sẽ thành công.

Tôi cũng đã thử giải pháp tại đây Android Facebook app logout issue nhưng cũng không hoạt động. Để xóa, tôi sử dụng mã này (tìm thấy chia sẻ tên pref trong lớp AccessTokenCache):

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

Tôi đang sử dụng Facebook SDK 4.5. Tôi đang thử nghiệm với một tài khoản Facebook thực sự. Các khóa ứng dụng và băm của tôi được đặt trong cài đặt ứng dụng Facebook.

P.S. Tiêu đề câu hỏi bị ảnh hưởng từ Facebook Login-Logout Issue Invalid Key Hash Error, While Trying to Login Again (không có giải pháp).

Trả lời

2

Tôi gặp sự cố tương tự, bạn cần xóa ứng dụng khỏi ứng dụng facebook rồi đăng xuất. Chức năng sau sẽ thực hiện thủ thuật.

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

Vâng, nó hoạt động khi tôi xóa ứng dụng theo cách thủ công khỏi cài đặt tài khoản Facebook. – enver

+0

Chính xác, mã ở trên sẽ xóa ứng dụng khỏi danh sách ứng dụng facebook. –

+0

Cái này hoạt động theo nghĩa đó. Nhưng một nhược điểm là nó làm cho access token không hợp lệ và không thể sử dụng được nữa. – enver

Các vấn đề liên quan