Android Facebook登录无效

问题描述 投票:1回答:1

我正在开发一个使用Facebook登录的Android应用程序。这是我在Android上的第一个Facebook登录集成。我在将facebook登录集成到我的应用程序时遇到了麻烦,因为在我的回调中没有显示登录成功与否。

我从调试签名密钥生成Facebook哈希密钥,并在Facebook开发人员设置中设置凭据,如下所示。

enter image description here

在类名中我设置了com.mmfashionnetwork.ptn.www.mmfashion.LoginActivity这是登录活动,其中存在facebook登录按钮和回调函数。我的默认活动是MainActivity。 Facebook应用程序是测试模式。

这是我的登录活动和回拨功能

public class LoginActivity extends AppCompatActivity {

    private EditText tfEmail;
    private EditText tfPassword;
    private Button btnLogin;
    private ProgressDialog loadingDialog;
    private TextView tvForgetPassword;
    private TextView tvCreateAccount;
    private TextView tvTitle;
    private Config config;
    private LoginButton btnFbLogin;
    private CallbackManager callbackManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(getApplicationContext());
        //other steps
        setUpFbLoginBtn();
    }

    private void setUpFbLoginBtn()
    {
        callbackManager = CallbackManager.Factory.create();
        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Toast.makeText(getBaseContext(),"Success",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onCancel() {
                Toast.makeText(getBaseContext(),"Canceled",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(FacebookException error) {
                Toast.makeText(getBaseContext(),"Error",Toast.LENGTH_SHORT).show();
            }
        });
    }

}

我还在Android清单文件中设置了所需的凭据。问题是回调函数没有被调用。正如你所看到的那样,我正在根据州的回调来传递信息。如果我尝试登录点击Facebook登录按钮。我在屏幕截图中重定向到Facebook。

enter image description here

单击“确定”时,不会调用任何回调函数。当前截图已经授权。但是当我第一次登录时,当我被重定向到我的应用程序登录活动时,它没有显示任何消息。登录后如何检索数据?在开发人员设置中,我必须设置登录活动类或主要活动类?我试过设置两个替代。两者都给了我相同的结果。

android facebook android-facebook
1个回答
2
投票

使用此代码进行facebook登录:

public class LoginActivity extends AppCompatActivity {

    private EditText tfEmail;
    private EditText tfPassword;
    private Button btnLogin;
    private ProgressDialog loadingDialog;
    private TextView tvForgetPassword;
    private TextView tvCreateAccount;
    private TextView tvTitle;
    private Config config;
    private LoginButton btnFbLogin;
    private CallbackManager callbackManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FacebookSdk.sdkInitialize(getApplicationContext());
        setUpFbLoginBtn();
    }

    private void setUpFbLoginBtn() {

        callbackManager = CallbackManager.Factory.create();
        LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this, Arrays.asList("public_profile, email, user_birthday, user_friends"));
        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Toast.makeText(getBaseContext(), "Success", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onCancel() {
                Toast.makeText(getBaseContext(), "Canceled", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(FacebookException error) {
                Toast.makeText(getBaseContext(), "Error", Toast.LENGTH_SHORT).show();
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.