Вход в Android Facebook не перейдет к следующему действию - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь выяснить, как сделать простой вход в систему через Facebook, после чего вы перейдете к следующему действию после входа в систему. В настоящее время он просто ведет вас на страницу выхода из Facebook, и я не могу понять, почему.

У меня есть строка startActivity на странице входа под onSuccess, но ничего не происходит.

У меня есть 2 занятия.Одним из них является SignIn, а другим является профиль, который имеет кнопку назад.Я следую учебному пособию на Facebook здесь:

https://developers.facebook.com/docs/facebook-login/android#

Любой и все понимание / совет ценится.

вот мой код

Вход

package com.example.test;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.facebook.AccessToken;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;

import java.util.Arrays;

public class SignIn extends AppCompatActivity {

    private CallbackManager callbackManager;
    private static final String EMAIL = "email";
    private LoginButton login_button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.signin);

        callbackManager = CallbackManager.Factory.create();

        login_button = (LoginButton) findViewById(R.id.login_button);
        login_button.setReadPermissions(Arrays.asList(EMAIL));

        // Callback registration
        login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                // App code

                Intent intent = new Intent(SignIn.this, Profile.class);
                startActivity(intent);

            }

            @Override
            public void onCancel() {
                // App code
            }

            @Override
            public void onError(FacebookException exception) {
                // App code
            }
        });

        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        // App code
                    }

                    @Override
                    public void onCancel() {
                        // App code
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        // App code
                    }
                });

        AccessToken accessToken = AccessToken.getCurrentAccessToken();
        boolean isLoggedIn = accessToken != null && !accessToken.isExpired();

        LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile"));

    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
        super.onActivityResult(requestCode, resultCode, data);

    }
}

Профиль

package com.example.test;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class Profile extends AppCompatActivity {


    Button backButton = (Button)findViewById(R.id.backButton);



    public void backToSignIn(View view) {
        Intent intent = new Intent(getApplicationContext(), SignIn.class);
        startActivity(intent);

    }
}

1 Ответ

0 голосов
/ 11 февраля 2019

Я думаю, что вы переопределяете первый обратный вызов при регистрации другого обратного вызова, попробуйте удалить второй регистр обратного вызова

LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    // App code
                }

                @Override
                public void onCancel() {
                    // App code
                }

                @Override
                public void onError(FacebookException exception) {
                    // App code
                }
            });

или изменить

@Override
            public void onSuccess(LoginResult loginResult) {
                // App code
            }

на

 @Override
        public void onSuccess(LoginResult loginResult) {
            // App code

            Intent intent = new Intent(SignIn.this, Profile.class);
            startActivity(intent);

        }

во втором обратном вызове зарегистрирован

...