我一直試圖在Android應用中實現Facebook登錄,但沒有成功。由於設計原因,我想實現Facebook登錄,而不使用SDK提供的LoginButton。爲此,我使用了LoginManager和CallbackManager類。我的代碼工作正常,當用戶沒有登錄Facebook應用程序,但如果用戶在Facebook應用程序中有一個打開的會話,我得到一個錯誤,說:Android Facebook SDK 4.0登錄:用戶登錄Facebook應用時出錯
錯誤 應用程序未安裝:此應用程序的開發人員還沒有正確設置這個應用程序的Facebook登錄。
我確定在Facebook上正確配置了應用程序,根據Facebook開發者教程,我在我的清單和gradle文件中擁有了所有內容,所以我不知道什麼是錯的。我真的很感謝這個話題的任何幫助,我需要讓這個工作繼續進行App開發。謝謝! 這裏是我的代碼與Facebook登錄:
在的onCreate(...)方法
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
btnFacebookLogin.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
facebookLogin();
}
});
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>()
{
@Override
public void onSuccess(LoginResult loginResult)
{
Log.i("LoginActivity","onSuccess Facebook Login");
Toast.makeText(getApplicationContext(),"Login successful",Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel()
{
}
@Override
public void onError(FacebookException e)
{
Log.e("LoginActivity","ERROR: "+e.getMessage());
}
});
在這裏,我facebookLogin()方法:
public void facebookLogin()
{
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile"));
}
而且onActivityResult(。 ..)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
再次感謝您的任何幫助!
你的onError方法被調用了嗎? logcat中還有其他的東西嗎? – 2015-03-31 22:32:57
另外,你可能使用測試應用程序,而不是真正的應用程序ID? – 2015-03-31 22:34:24