FB SDK 错误:登录失败(react-native)

Posted

技术标签:

【中文标题】FB SDK 错误:登录失败(react-native)【英文标题】:FB SDK Error: Login Failed (react-native) 【发布时间】:2016-12-02 15:35:13 【问题描述】:

我目前正在为我的 Reach Native 应用程序设置 Facebook 身份验证。在 react-native-fbsdk 设置出现常见问题之后,现在 Facebook 应用事件可以正常工作并且 LoginManager 会加载。

我的问题:授权后 LoginManager 将我重定向回应用程序,然后显示错误:

登录失败

我正在使用非常标准的 LoginManager 实现:

const FBSDK = require('react-native-fbsdk');
const 
  LoginManager,
  AccessToken,
 = FBSDK;


export default class FacebookAuth extends Component 

  facebook()
    LoginManager.logInWithReadPermissions(['public_profile', 'email']).then(
  function(result) 
    if (result.isCancelled) 
      alert('Login cancelled');
     else 
      alert('Login success with permissions: '
        +result.grantedPermissions.toString());
    
  ,
  function(error) 
    alert('Login fail with error: ' + error);
  
);

你有什么建议吗?

我已经检查过了:

Info.Plist 中的 FB 应用信息 Facebook 应用中的 ios Bundle ID 客户端 OAuth 设置 FBSDK LoginButton(同样的错误)

我正在运行:iOS 10 和 react-native 0.38.0。

谢谢!

【问题讨论】:

我在登录之前添加了钥匙串共享、LoginManager.logOut(),但没有解决我的问题。解决的是使用 Facebook SDK 4.38.0 而不是最新的(Facebook SDK 4.39.0) 【参考方案1】:

Error when login with Facebook SDK — React Native

问题是 Facebook SDK 仍然保留以前的会话令牌,当我尝试再次登录时,我收到了这个错误,要解决这个问题,我所要做的就是从 LoginManager 调用 logOut 方法。

LoginManager.logInWithReadPermissions...之前试试这个

LoginManager.logOut();

【讨论】:

这个答案为我节省了很多时间。谢谢一凡。 这对我很有帮助,伙计 这对我不起作用,它只是在 iOS 上发生 我在登录之前添加了钥匙串共享、LoginManager.logOut(),但没有解决我的问题。解决的是使用 Facebook SDK 4.38.0 而不是最新的(Facebook SDK 4.39.0)【参考方案2】:

在尝试不同的解决方案几个小时后,感谢 Cassiano Montanari 和 zavadpe 在这里的评论 Incorrect installation

我最终得到了这个配置:

Pod 文件:

  pod 'FBSDKCoreKit', '4.38.0'
  pod 'FacebookSDK', '4.38.0'
  pod 'FBSDKShareKit', '4.38.0'
  pod 'FBSDKLoginKit', '4.38.0'

您需要确保在 Link Binary With Libraries 中添加 libRCTFBSDK.a,并从您的 pod 文件中删除 'react-native-fbsdk', :path => '../node_modules/react-native-fbsdk'

在我将 FBSDK 升级到 4.39 后,我的问题开始出现,如果我使用 pod 'react-native-fbsdk', :path => '../node_modules/react-native-fbsdk',我找不到任何方法将 SDK 版本指定到 pod 文件中。

我认为一种选择是使用Carthage,但我还没有尝试过。

【讨论】:

【参考方案3】:

根据 Cassiano Montanari 的评论,从 4.39.0 降级到 4.38.0 是解决方法。我整个下午都在为此苦苦挣扎,降级立即解决了它。

【讨论】:

我在 RN 0.57.5 遇到了同样的事情。 也为我工作。野生虫子!【参考方案4】:

我想,我解决了这个问题。 我仍然不是 100% 清楚为什么,但它与此有关: How to use Facebook iOS SDK on iOS 10

启用钥匙串访问后,身份验证工作。

【讨论】:

我在登录之前添加了钥匙串共享、LoginManager.logOut(),但我没有解决任何问题。解决的是使用 Facebook SDK 4.38.0 而不是最新的(Facebook SDK 4.39.0)

以上是关于FB SDK 错误:登录失败(react-native)的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Twitter Google line 登录之 fb登录

Android Facebook SDK 3.23.0 - AndroidTV 上的 FB 登录

如何检查用户是不是使用 FB SDK 4.0 for Android 登录?

IOS FACEBOOK SDK,从FB注销并登录后

sdk资源分配错误

FB iOS SDK 自定义令牌缓存问题