我的代碼在卸載Facebook移動應用程序時啓動Facebook登錄屏幕。我填寫了我的用戶名和密碼,它一切正常。但是,當我從Facebook安裝Facebook應用程序。我的應用程序彈出一個窗口,要求獲得basic_info和好友列表的權限,但是我無法登錄。狀態爲CLOSED_LOGIN_FAILED。這是我的代碼。我究竟做錯了什麼?當我安裝Facebook應用程序時,我的自定義Facebook應用程序無法登錄
public class FacebookHome extends CustomActivity {
private Session.StatusCallback statusCallback = new SessionStatusCallback();
private UiLifecycleHelper uiLifecycleHelper;
private static final String TAG = "Facebook";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.facebook_home);
addListenerForView(R.id.facebook_home_layout);
uiLifecycleHelper = new UiLifecycleHelper(this, statusCallback);
uiLifecycleHelper.onCreate(savedInstanceState);
}
private void onSessionStateChange(Session session, SessionState state, Exception exception) {
if (state.isOpened()) {
loggingTextView.setText(getResources().getString(R.string.facebook_logout));
Log.i(TAG, "Logged in...");
} else if (state.isClosed()) {
loggingTextView.setText(getResources().getString(R.string.facebook_login));
Log.i(TAG, "Logged out...");
}
}
protected void onResume() {
super.onResume();
Session session = Session.getActiveSession();
if (session != null &&
(session.isOpened() || session.isClosed())) {
onSessionStateChange(session, session.getState(), null);
}
uiLifecycleHelper.onResume();
}
@Override
protected void nonVerboseIntroduction(){
speak("Facebook Main menu");
}
@Override
public void onPause() {
super.onPause();
uiLifecycleHelper.onPause();
}
@Override
public void onDestroy(){
super.onDestroy();
uiLifecycleHelper.onDestroy();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiLifecycleHelper.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
uiLifecycleHelper.onSaveInstanceState(outState);
}
@SuppressWarnings("deprecation")
@Override
public void confirmation(int selectedViewID) {
switch (selectedViewID) {
case R.id.facebook_login:
//This corresponds with a login button on my custom layout
TextView view = (TextView) findViewById(R.id.facebook_login);
if (view.getText().toString().matches(getResources().getString(R.string.facebook_login))) {
login();
} else if (view.getText().toString().matches(getResources().getString(R.string.facebook_logout)))
exitSession();
break;
}
}
private class SessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state,
Exception exception) {
onSessionStateChange(session, state, exception);
}
}
private void login() {
try {
Session session = Session.getActiveSession();
if (session == null) {
session = new Session(this);
Session.setActiveSession(session);
session.openForRead(new Session.OpenRequest(this)
.setPermissions("basic_info")
.setCallback(statusCallback));
} else {
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(new Session.OpenRequest(this)
.setCallback(statusCallback));
} else {
Session.openActiveSession(this, true, statusCallback);
}
}
} catch (Exception ex) {
System.out.println(ex.toString());
ex.printStackTrace();
}
}
是的,我已經做到了。 – user3366176
如果一切正常,那麼它應該工作。我會建議你再次檢查facebook應用配置。 –