Facebook SDK 登录回调永远不会被称为 android

Posted

技术标签:

【中文标题】Facebook SDK 登录回调永远不会被称为 android【英文标题】:Facebook SDK Login callback is never called android 【发布时间】:2016-05-04 12:26:53 【问题描述】:

我在我的 android 应用中使用以下代码 sn-p 来允许用户使用 Facebook 登录我的应用:

public class FacebookLoginActivity extends AppCompatActivity 
private CallbackManager callbackManager;

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(this.getApplicationContext());
    initCallback();
    LoginManager.getInstance().logInWithReadPermissions(this, FacebookUtils.requiredPermissions);


private void initCallback() 
    callbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() 
                @Override
                public void onSuccess(LoginResult loginResult) 
                   AccessToken.setCurrentAccessToken(loginResult.getAccessToken());

                @Override
                public void onCancel() 

                

                @Override
                public void onError(FacebookException exception) 

                

            
    );


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

但是,它不起作用,因为从未调用过定义的回调方法,我看到了 facebook 加载程序,并且我到达了 onActivityResult 但从未调用过回调,有人知道可能是什么问题吗?提前致谢。

【问题讨论】:

您想在进入此活动后立即登录 Facebook,还是在点击按钮时登录? @HelloWorld 不,点击自定义按钮,而不是 facebook sdk 登录按钮 这只是一个检查它是否正常工作并且没有达到定义的回调的例子 您是否在清单中授予权限? @VivekMishra 我在清单中添加了以下内容: 【参考方案1】:

试试下面的代码:

public class FacebookLoginActivity extends AppCompatActivity 
private CallbackManager callbackManager;

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(this.getApplicationContext());
    callbackManager = CallbackManager.Factory.create();
    initCallback();

    Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new OnClickLinew View.OnClickListener() 
        @Override
        public void onClick(View v) 
            // add this on facebook sign in button click listener
            LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile","email"));
        
    );


private void initCallback() 
    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() 
                @Override
                public void onSuccess(LoginResult loginResult) 
                   AccessToken.setCurrentAccessToken(loginResult.getAccessToken());

                @Override
                public void onCancel() 

                

                @Override
                public void onError(FacebookException exception) 

                

            
    );


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

【讨论】:

但这和我发布的 sn-p 完全一样,除了登录请求在我已经尝试过但没有成功的点击侦听器内.. 它与 OP 有何不同。 LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile","email")); 在侦听器之外添加此代码对我来说在按钮单击时起作用,确实如此。【参考方案2】:

试试这个步骤。

LoginButton 创建新的Variable,在全局范围内定义它。

private LoginButton btnLogin;

然后在您的onCreate 上添加此代码。

btnLogin.setReadPermissions(Arrays.asList("public_profile, email, user_birthday"));
callbackManager = CallbackManager.Factory.create();

也改变这个。

LoginManager.getInstance().registerCallback(callbackManager,

到此。

btnLogin.registerCallback(callbackManager,

【讨论】:

我应该在 onClickListener 中做什么? btnLogin 也是 null 我应该分配给它什么 @EyadMhanna 为登录按钮分配 xml 中的任何 ID。 你能解释一下什么新的 Logcat 不能工作或者和 OP 有同样的问题吗? 和以前一样的行为,回调没有被调用,因此我无法更新访问令牌 查看此链接以供参考,这将对您有所帮助devexchanges.info/2015/11/…

以上是关于Facebook SDK 登录回调永远不会被称为 android的主要内容,如果未能解决你的问题,请参考以下文章

Android Facebook 登录回调永远不会触发

iOS:最新的 Parse SDK PFFacebookUtils 块永远不会被执行

会话总是返回 null facebook php sdk

解析:[PFFacebookUtils reauthorizeUser:] 回调永远不会被调用

ios facebook swift sdk 共享对话框永远不会返回成功

Facebook ios sdk 3.10 openActiveSessionWithReadPermissions 不使用网络登录回调