Как отключить родное приложение на Facebook для входа пользователя
У меня проблема с входом пользователя в Facebook в моем приложении для Android. Я хочу, чтобы пользователи использовали свою учетную запись Facebook для входа в мою систему, но когда я нажимаю кнопку входа в систему, запускается собственное приложение facebook, и пользователь вводит электронную почту и пароль, а затем закрывается собственное приложение и снова запускается мое приложение. Я не хочу использовать нативное приложение для этого процесса входа в систему. Я хочу открывать всплывающее окно для входа в Facebook, как и в других телефонах, у которых нет нативного приложения в Facebook.
Как я могу это сделать? Спасибо
Редактировать:
Я использую методы ниже для входа
protected void loginToFacebook()
{
if( !mFacebook.isSessionValid() ) {
Toast.makeText(mActivity, "logining", Toast.LENGTH_SHORT).show();
mFacebook.authorize(mActivity,permissions, new LoginDialogListener());
}
else {
try {
JSONObject json = Util.parseJson(mFacebook.request("me"));
String facebookID = json.getString("id");
String firstName = json.getString("first_name");
String lastName = json.getString("last_name");
String email = json.getString("email");
Toast.makeText(mActivity, mFacebook.getAccessToken()+email+"-" + firstName + " " + lastName + ". No need to re-authorize.", Toast.LENGTH_SHORT).show();
appState.mFbToken = mFacebook.getAccessToken();
appState.mFbEmail = email;
mFacebookListener.onFacebookLoginSelected();
}
catch( Exception error ) {
Toast.makeText( mActivity, error.toString(), Toast.LENGTH_SHORT).show();
}
}
}
Для прослушивания ответа
public final class LoginDialogListener implements DialogListener {
public void onComplete(Bundle values) {
try {
//The user has logged in, so now you can query and use their Facebook info
JSONObject json = Util.parseJson(mFacebook.request("me"));
String facebookID = json.getString("id");
String firstName = json.getString("first_name");
String lastName = json.getString("last_name");
String email = json.getString("email");
Toast.makeText( mActivity, mFacebook.getAccessToken() +email+"-" + firstName + " " + lastName + "!", Toast.LENGTH_SHORT).show();
SessionStore.save(mFacebook, mActivity);
appState.mFbToken = mFacebook.getAccessToken();
appState.mFbEmail = email;
mFacebookListener.onFacebookLoginSelected();
}
catch( Exception error ) {
Toast.makeText( mActivity, error.toString(), Toast.LENGTH_SHORT).show();
}
}
public void onFacebookError(FacebookError error) {
Toast.makeText( mActivity, "Something went wrong. Please try again.", Toast.LENGTH_LONG).show();
}
public void onError(DialogError error) {
Toast.makeText( mActivity, "Something went wrong. Please try again.", Toast.LENGTH_LONG).show();
}
public void onCancel() {
Toast.makeText( mActivity, "Something went wrong. Please try again.", Toast.LENGTH_LONG).show();
}
}
Если собственное приложение запускается, мой диалогиалнер не работает, но если запускается всплывающее окно входа в систему через Интернет, мой слушатель работает хорошо.
Любая идея?