Objective-C:“类消息的接收者FBSDKAccessToken是前向声明”

时间:2016-07-28 18:09:31

标签: ios objective-c iphone facebook-ios-sdk

它向我显示此错误。 我所做的就是下载带有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

2 个答案:

答案 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