繁体   English   中英

Android Facebook登录未调用回调函数

[英]Android Facebook login not calling callback function

我试图在一个简单应用程序的主要活动中添加一个Facebook登录按钮。 当我按下“使用Facebook登录”按钮时,我打开了FB应用程序进行登录,但是成功登录后,该应用程序将返回到应用程序的主屏幕,并且没有任何反应(没有为LoginManager注册的回调函数称为)。

我的代码如下:

public class MainActivity extends FragmentActivity {

    Button changeButton;
    LoginButton loginButton;
    CallbackManager callbackManager;
    MainActivity thisActivity;

    // Sets the Facebook login.
    private void setupFacebookLogin() {

        // Create the callbackManager and add functionality to it.
        callbackManager = CallbackManager.Factory.create();
        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                throw new AssertionError();
            }

            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException e) {

            }
        });
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        thisActivity = this;

        // Initialize Facebook SDK.
        FacebookSdk.sdkInitialize(getApplicationContext());

        setupFacebookLogin();

        // Set the current layout to main.
        setContentView(R.layout.activity_main);
    }

    @Nullable
    @Override
    public View onCreateView(String name, Context context, AttributeSet attrs) {
        return super.onCreateView(name, context, attrs);
    }

    @Override
    protected void onResume() {
        super.onResume();
        AppEventsLogger.activateApp(this);
    }
    @Override
    public void onPause() {
        super.onPause();
        AppEventsLogger.deactivateApp(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

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

另外,我的xml是:

<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="change"
    android:id="@+id/button1"
    android:layout_below="@+id/textView"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="61dp" />

<com.facebook.login.widget.LoginButton
    android:id="@+id/fb_login_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_below="@+id/button1"
    android:layout_centerHorizontal="true" />

由于onSuccess中的断言,我希望应用程序从FB登录返回时崩溃。 但是,事实并非如此。 任何帮助,将不胜感激,谢谢!

在“使用Facebook登录”按钮的点击监听器中添加以下行:

LoginManager.getInstance().logInWithReadPermissions(WelcomeActivity1.this, (Arrays.asList("public_profile", "user_friends","user_birthday","user_about_me","email")));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM