2015-10-08 9 views
5

https://developers.facebook.com/docs/facebook-login/androidのプロフィールとメールの読み取り権限で説明されているようにFacebookログインボタンを実装しました。AndroidのFacebook SDK 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

これはその意味で機能します。しかし、1つの欠点は、アクセストークンを無効にし、もはや使用できなくなることです。 – enver