我正在將Facebook登錄集成到我的應用中。登錄工作,但是當我註銷並嘗試重新登錄時,出現以下錯誤: 「密鑰散列無效。密鑰散列」...「與任何存儲的密鑰散列不匹配。 http://developers.facebook.com/apps/ ...「Android通過Facebook登錄
錯誤只發生在我第二次嘗試登錄後。 以下是我使用的代碼。我哪裏錯了?
public class LoginActivity extends AppCompatActivity {
private CallbackManager mCallbackManager;
private LoginButton loginButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(this.getApplicationContext());
setContentView(R.layout.activity_login);
mCallbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(mCallbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.i("LOGINFACEBOOK", "onSuccess? " + loginResult.toString());
}
@Override
public void onCancel() {
Log.i("LOGINFACEBOOK", "onCancel");
}
@Override
public void onError(FacebookException exception) {
Log.i("LOGINFACEBOOK", "onError? " + exception.toString());
}
});
LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.i("LOGINFACEBOOK", "loginButton onSuccess? " + loginResult.toString());
}
@Override
public void onCancel() {
Log.i("LOGINFACEBOOK", "loginButton onCancel");
}
@Override
public void onError(FacebookException error) {
Log.i("LOGINFACEBOOK", "loginButton onError? " + error.toString());
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mCallbackManager.onActivityResult(requestCode, resultCode, data);
}
}
這個標準的facebook實現。只需記下或OR日誌/警報在吐司/錯誤中顯示的hashkey並將其放入您的網站facebook應用程序哈希鍵。 – Ajinkya
沒有工作。我把錯誤中出現的哈希放在Facebook上的APP中,但仍然看到相同的錯誤。 奇怪的是,它第一次實現登錄時起作用。 –
還有一個信息。卸載Facebook應用程序無法正常測試和運行。當我點擊Facebook loginButton時,它會打開webview並正常運行。 –