如何禁用用户登录Facebook的本机应用程序本机、用户登录、应用程序、Facebook

2023-09-05 02:45:02 作者:独久厌闹

我在我的Andr​​oid应用程序与Facebook用户登录的问题。我希望用户使用他们的Facebook帐户登录我的系统,但是当我点击登录按钮,Facebook的本机应用程序启动和用户输入电子邮件地址和密码,然后本机应用程序关闭,我的应用程序再次启动。我不想使用本机应用程序此登录proccess我想打开Facebook的登录弹出只是像其他手机不具备Facebook的本地应用程序。

我怎样才能做到这一点? 谢谢

编辑:

我用下面的方法登录

 保护无效loginToFacebook()
{


    如果(!mFacebook.isSessionValid()){
        Toast.makeText(mActivitylogining,Toast.LENGTH_SHORT).show();
        mFacebook.authorize(mActivity,权限,新LoginDialogListener());
    }
    其他 {
        尝试 {
            JSONObject的JSON = Util.parseJson(mFacebook.request(我));
            字符串facebookID = json.getString(ID);
            字符串的firstName = json.getString(FIRST_NAME);
            字符串的lastName = json.getString(姓氏);
            字符串email = json.getString(电子邮件);
            Toast.makeText(mActivity,mFacebook.getAccessToken()+电子邮件+ - +的firstName ++ lastName的+无需重新检查,Toast.LENGTH_SHORT。).show();

            appState.mFbToken = mFacebook.getAccessToken();
            appState.mFbEmail =电子邮件;
            mFacebookListener.onFacebookLoginSelected();

        }
        赶上(异常错误){
            Toast.makeText(mActivity,error.toString(),Toast.LENGTH_SHORT).show();
        }
    }

}
 

有关监听的响应

 公共final类LoginDialogListener实现DialogListener {
    公共无效的onComplete(束值){
        尝试 {
            //用户已登录,那么现在就可以查询和使用他们的Facebook信息
            JSONObject的JSON = Util.parseJson(mFacebook.request(我));
            字符串facebookID = json.getString(ID);
            字符串的firstName = json.getString(FIRST_NAME);
            字符串的lastName = json.getString(姓氏);
            字符串email = json.getString(电子邮件);
            Toast.makeText(mActivity,mFacebook.getAccessToken()+电子邮件+ - +的firstName ++ lastName的+,Toast.LENGTH_SHORT!).show();
            SessionStore.save(mFacebook,mActivity);

            appState.mFbToken = mFacebook.getAccessToken();
            appState.mFbEmail =电子邮件;
            mFacebookListener.onFacebookLoginSelected();


        }
        赶上(异常错误){
            Toast.makeText(mActivity,error.toString(),Toast.LENGTH_SHORT).show();
        }
    }

    公共无效onFacebookError(FacebookError错误){
        Toast.makeText(mActivity。出事了,请重试,Toast.LENGTH_LONG).show();
    }

    公共无效onerror的(DialogError错误){
        Toast.makeText(mActivity。出事了,请重试,Toast.LENGTH_LONG).show();
    }

    公共无效OnCancel的(){
        Toast.makeText(mActivity。出事了,请重试,Toast.LENGTH_LONG).show();
    }
}
 

如果本机应用程序开始我的dialoglistenner不工作,但如果基于网​​络的登录弹出开始我listenner做工不错。

你知道吗?

解决方案 研知 寒假如何查文献 图文详解

请更新跌破$ C $您的应用程序下进行。

  mFacebook.authorize(mActivity,权限,Facebook.FORCE_DIALOG_AUTH,
            新LoginDialogListener());
 

而不是

  mFacebook.authorize(mActivity,权限,新LoginDialogListener());
 

和见下面的链接了解更多信息。

Facebook登录文档

I have a problem with facebook user login in my android application. I want users use their facebook account to login my system but when I click login button facebook native app starts and user enters email and password then native app closes and my app starts again. I dont want to use native app for this login proccess i want to open facebook login pop-up only like the other phones that does not have facebook native app.

How can i do this? thanks

Edit:

I use the methods below for login

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();
        }
    }

}

For listening the response

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();
    }
}

If native app starts my dialoglistenner does not work but if web based login pop-up starts my listenner works good.

Any Idea?

解决方案

Please update below code of your application.

mFacebook.authorize(mActivity, permissions, Facebook.FORCE_DIALOG_AUTH,
            new LoginDialogListener());

instead of

mFacebook.authorize(mActivity, permissions, new LoginDialogListener());

And see below link for more information

Facebook Login Issue