我目前正在为我的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);
}
);
你对我有什么指示吗?
我已经检查过了:
我正在运行:iOS 10&反应原生0.38.0。
谢谢!
答案 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
启用钥匙串访问后,身份验证将起作用。