我在使用React Native获取fbsdk中的AccessToken方面遇到了麻烦。 我正在调用Facebookbuild议的核心: const FBSDKCore = require('react-native-fbsdkcore'); const { FBSDKAccessToken, } = FBSDKCore; 在一个场景中,我尝试在日志中logging令牌,就像SO上这里所说的类似问题所build议的那样。 <View> <View style={{flex: 1, alignItems: 'center', padding: 50, marginTop: 250}}> <View> <LoginButton publishPermissions={["publish_actions"]} onLoginFinished={ (error, result) => { if (error) { alert("login has error: " + result.error); } else if (result.isCancelled) { alert("login is cancelled."); } else { FBSDKAccessToken.getCurrentAccessToken((token)=> { console.log(token); […]
我正在使用FBSDK设置一个React Native项目用于login目的。 以下是我迄今为止所做的: 我运行npm install react-native-fbsdk –save 我运行了react-native link 我遵循这里提到的每一步: https : //developers.facebook.com/docs/facebook-login/ios/ 我再次检查使用此video: https : //www.youtube.com/watch?v = rAXVKapP5cM 不过,我仍然得到这个红色的屏幕错误: Cannot read property logInWithReadPermissions of undefined在FBLoginManager.js第77行( https://github.com/facebook/react-native-fbsdk/blob/master/js/FBLoginManager.js ) Cannot read property logInWithReadPermissions of undefined 这是我的AppDelegate.m内容: #import "AppDelegate.h" #import <FBSDKCoreKit/FBSDKCoreKit.h> #import <React/RCTBundleURLProvider.h> #import <React/RCTRootView.h> @implementation AppDelegate – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSURL *jsCodeLocation; jsCodeLocation = […]
我想手动链接Facebook的SDK,因为我们不使用cocoapods&不想实现它。 但由于某些原因,当我们在buddybuild上构build我们的应用程序时,它会失败。 我所做的是将FacebookSDK文件夹放在里面(不是我所知道的最佳解决scheme): ios/<ProjectName>/FacebookSDK 我将这个文件夹( $(SRCROOT)/ios/<ProjectName>/FacebookSDK)到框架search标题path,它似乎仍然抛出错误。 1850 ▸ Compiling RCTFBSDKShareDialog.m 1851 » In file included from node_modules/react-native-fbsdk/ios/RCTFBSDK/share/RCTFBSDKShareDialog.m:19: 1852 ✗ node_modules/react-native-fbsdk/ios/RCTFBSDK/share/RCTFBSDKShareDialog.h:21:9: fatal error: 'FBSDKShareKit/FBSDKShareKit.h' file not found 1853 » #import <FBSDKShareKit/FBSDKShareKit.h> 1854 » ^ 1855 ▸ Compiling RCTFBSDKAppEvents.m 1856 » In file included from node_modules/react-native-fbsdk/ios/RCTFBSDK/core/RCTFBSDKAppEvents.m:19: 1857 ✗ node_modules/react-native-fbsdk/ios/RCTFBSDK/core/RCTFBSDKAppEvents.h:21:9: fatal error: 'FBSDKCoreKit/FBSDKCoreKit.h' file not found 1858 » […]
当我在viewDidLoad运行应用程序时,我需要检查用户是否曾经login过。 if FBSDKAccessToken.currentAccessToken() != nil { print("1") presentViewController(controller, animated: true, completion: nil) } else { print("2") let button = FBSDKLoginButton() button.delegate = self button.readPermissions = ["public_profile", "user_friends"] view.addSubview(button) } 它总是打印"2" 。 为什么?
我最初下载了FBSDK的4.10版本,并将它们放到我的应用程序中,放在框架文件夹中。 意识到这些将不会随着时间的推移而得到更新,我将它们彻底删除,并尝试将它们作为豆荚添加到我的项目中。 成功安装了pod,我已经正确地将它们导入了桥接头文件,并且没有其他问题。 豆荚更新安装版本4.11导致我头痛。 我正在使用FBSDKLoginKit将用户login到他们的帐户并从中检索信息。 我能够找回用户信息的字典就好了。 然后我把这个信息传递给下一个ViewController。 在此之后的任何时候,如果我按下我的iPhone或模拟器上的主页button,应用程序将崩溃。 我得到的错误是 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[3]' 如果我让用户通过Facebooklogin,继续到新的视图控制器,展开到先前的视图控制器,然后再次尝试login,也会发生此exception。 一旦在第二个屏幕上检索到他们的相关信息,我试图login用户,但是错误仍然存在。 我看到一个类似的问题,问“解决scheme”在哪里,FBSDKLoginKit将检索到的字典写入一个variables,如果检索到的字典有nil值,则抛出这个错误。 有什么事情可以在事情发生之前做到吗? 有没有人find解决办法? 这是我按下home时从模拟器的输出: *** First throw call stack: ( 0 CoreFoundation 0x0000000106f03d85 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x000000010643edeb objc_exception_throw + 48 2 CoreFoundation 0x0000000106e0023e […]
我的info.plist FBSDKAppInviteContent *content =[[FBSDKAppInviteContent alloc] init]; content.appLinkURL = [NSURL URLWithString:@"https://fb.me/450262455167157"]; //optionally set previewImageURL content.appInvitePreviewImageURL = [NSURL URLWithString:@"https://www.apple.com/my_invite_image.jpg"]; // present the dialog. Assumes self implements protocol `FBSDKAppInviteDialogDelegate` [FBSDKAppInviteDialog showFromViewController: self withContent: content delegate: self ]; //FBSDKAppInviteDialog delegate -(void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didCompleteWithResults:(NSDictionary *)results { NSLog(@"%@",results); } -(void)appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didFailWithError:(NSError *)error { NSLog(@"%@",error); }
这里是我的代码,我只获取用户的用户名和Facebook的ID。 FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; [login logInWithReadPermissions: @[@"public_profile",@"email",@"user_friends"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { NSLog(@"Process error"); } else if (result.isCancelled) { NSLog(@"Cancelled"); } else { if ([FBSDKAccessToken currentAccessToken]) { [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { if (!error) { NSLog(@"fetched user:%@", result); } }]; } NSLog(@"Results=%@",result); […]