繁体   English   中英

解析SDK的Android Facebook SDK登录问题

[英]Android Facebook SDK login issue with parse sdk

使用LoginManager类登录时出现奇怪的问题。 我正在从片段中调用LoginManager.getInstance().logInWithReadPermissions(..) ,以使用所需的权限登录。

我已尽力调试,发现返回到此片段的父活动的onActivityResult的回调请求代码是错误的。 以下代码来自LoginManager类,该类使用某些请求代码注册了登录回调。

...
CallbackManagerImpl.registerStaticCallback(
              CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode(),
              new CallbackManagerImpl.Callback() {
                 @Override
                 public boolean onActivityResult(int resultCode, Intent data) {
                   return LoginManager.this.onActivityResult(resultCode, data);
                 }
              }
      );
...

但是,当它调用活动的onActivityResult时,它不是CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()而是其他东西,例如double。 例如,当我尝试调试并检查值时,它是这样的:

CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode()= 64206

活动类中收到的requestCode = 129742

现在正因为如此,当callbackManager尝试调用onActivityResult时,

callbackManager.onActivityResult(requestCode,resultCode,data);

有了这个requestCode,它从地图上找不到继续前进的logincallback,它就在那里停了下来。 我不知道为什么会发生这种情况,因为我正在使用ParseFacebookSDK,并且当我使用ParseFacebookUtils.logInWithReadPermissionsInBackground(..)登录时,它可以完美地工作。 以下是gradle依赖项。

...
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile('com.parse:parse-android:1.13.0') {
        exclude group: 'com.parse.bolts',
                module: 'bolts-tasks'
    }
compile 'com.parse:parsefacebookutils-v4-android:1.10.3@aar'
...

如果可以帮助,将不胜感激。 谢谢。

更新:

当我尝试从父级活动而不是片段登录Facebook时,它对我有用,这次它在活动的onActivityResult中返回了正确的请求代码,并且很简单。 这已经解决了我的问题,但仍然想在这里了解片段的问题,因此,如果您知道,请分享您的想法。 谢谢。

在用户已登录的情况下尝试调用ParseFacebookUtils.logInWithReadPermissionsInBackground是不正确的,这可能就是为什么您没有获得回调的原因。

如果您的用户已经登录但未链接到Facebook,则调用的正确函数是ParseFacebookUtils.linkWithReadPermissionsInBackground ,这意味着您希望将用户链接到Facebook,而不是登录到您的应用程序(因为他已经登录)。 在文档中查看一下。

如果要从片段中调用LoginManager.getInstance().logInWithReadPermissions(..) ,则期望在片段的onActivityResult中接收正确的请求代码,而不是活动的onActivityResult

这里 片段具有自己的“ onActivityResult”方法。 他们不必为此而依赖活动。

不一定需要任何UI的东西还是自己提供了此方法,这不是很棒吗:)

暂无
暂无

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

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