19

我目前正在为我的 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。

谢谢!

4

4 回答 4

61

使用 Facebook SDK 登录时出错 - React Native

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

在此之前尝试LoginManager.logInWithReadPermissions...

LoginManager.logOut();
于 2017-08-19T09:52:20.190 回答
4

经过几个小时尝试不同的解决方案后,我设法修复了它,这要归功于 Cassiano Montanari 和 zavadpe 在此处的评论安装错误

我最终得到了这个配置:

豆荚文件:

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

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

在我将 FBSDK 升级到 4.39 后,我的问题开始出现,如果我使用pod 'react-native-fbsdk', :path => '../node_modules/react-native-fbsdk'.

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

于 2018-12-23T12:04:39.467 回答
3

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

于 2018-12-20T08:29:11.273 回答
-1

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

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

于 2016-12-02T16:27:30.743 回答