它向我显示此错误。 我所做的就是下载带有CocoaPods的Facebook SDK,我正在尝试登录,但不能因为这个错误=(
FBSDKAccessToken和FBSDKGraphRequest也有同样的错误......
这是我的代码:
#import "TestesViewController.h"
#import "FBSDKCoreKit.h"
#import "FBSDKLoginKit.h"
@implementation TestesViewController
-(void) viewDidLoad {
[super viewDidLoad];
FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc]init];
loginButton.readPermissions = @[@"public_profile", @"email", @"user_friends"];
loginButton.center = self.view.center;
[self.view addSubview:loginButton];
}
- (IBAction)loadButton:(id)sender {
if ([FBSDKAccessToken currentAccessToken]) {
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSLog(@"fetched user:%@", result);
}
}];
}
}
@end
答案 0 :(得分:0)
更改
#import "FBSDKLoginKit.h"
#import "FBSDKCoreKit.h"
到
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
解决问题?如果没有,项目/工作区中的标题搜索路径可能存在问题。
答案 1 :(得分:-1)
这里你使用自定义loadButton而不是FBSDKLogin按钮,所以我认为为了使用你的自定义FB登录按钮你的参数不能为零,你需要提供参数。此外,您需要首先使用登录管理器登录用户才能获得访问令牌,如果用户从未登录过该令牌,那么您将获得访问令牌。您需要将其存储在某处,可能是用户默认值,因此我删除了现在部分。尝试将代码更改为:
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithReadPermissions:@[@"email",@"user_birthday",@"public_profile"] fromViewController:nil handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
// if ([FBSDKAccessToken currentAccessToken]) {
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields":@"first_name, last_name, picture.type(large),email"}]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSLog(@"fetched user:%@", result);
}
}];
//}
}];
将此代码插入到加载按钮部分。这对我有用。 这可能对你有用。 如果您真的想要制作自定义FB登录按钮,请考虑Custom FB button