如何禁用facebook本机应用程序进行用户登录 [英] How to disable facebook native app for user login

查看:170
本文介绍了如何禁用facebook本机应用程序进行用户登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Android应用程序中的facebook用户登录有问题。我想要用户使用他们的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 +,不需要重新授权。,Toast.LENGTH_SHORT).show();

appState.mFbToken = mFacebook.getAccessToken();
appState.mFbEmail = email;
mFacebookListener.onFacebookLoginSelected();

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

}

响应

  public final class LoginDialogListener实现DialogListener {
public void onComplete(Bundle values){
try {
//用户已经登录,所以现在你可以查询和使用他们的Facebook信息
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(异常错误){
Toast.makeText(mActivity,error.toString(),Toast.LENGTH_SHORT).show();
}
}

public void onFacebookError(FacebookError error){
Toast.makeText(mActivity,发生错误,请重试。,Toast.LENGTH_LONG )。显示();
}

public void onError(DialogError error){
Toast.makeText(mActivity,发生错误,请重试。,Toast.LENGTH_LONG).show() ;
}

public void onCancel(){
Toast.makeText(mActivity,发生错误,请重试。,Toast.LENGTH_LONG).show();
}
}

如果本机应用启动我的dialoglistenner不起作用基于Web的登录弹出窗口启动我的听众工作良好。



任何想法?

解决方案

请更新以下代码。

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

而不是

 code> mFacebook.authorize(mActivity,permissions,new 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

这篇关于如何禁用facebook本机应用程序进行用户登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆