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

时间:2016-12-02 15:35:14

标签: ios react-native fbsdk react-native-fbsdk

我目前正在为我的Reach Native应用程序设置Facebook身份验证。在react-native-fbsdk设置出现常见问题后,现在Facebook App Events工作,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 App中的iOS Bundle ID
  • 客户端OAuth设置
  • FBSDK LoginButton(同样的错误)

我正在运行:iOS 10&反应原生0.38.0。

谢谢!

4 个答案:

答案 0 :(得分:34)

Error when login with Facebook SDK — React Native

  

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

REQUEST_TIME

之前尝试此操作
LoginManager.logInWithReadPermissions...

答案 1 :(得分:4)

经过几个小时的尝试不同的解决方案后,由于这里的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'

您需要确保在与库链接二进制文件中添加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,但我还没有尝试过。

答案 2 :(得分:3)

根据Cassiano Montanari的评论,修复从4.39.0降级为4.38.0。我整个下午都在苦苦挣扎,降级立即解决了这个问题。

答案 3 :(得分:-1)

我想,我解决了这个问题。 我还没有100%明白为什么,但它与此有关: How to use Facebook iOS SDK on iOS 10

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