ios - 使用 Facebook Graph API 提取用户信息时出现身份验证错误

标签 ios facebook facebook-graph-api facebook-ios-sdk

我正在尝试通过 FBConnect 最新的 SDK 提取用户的基本信息。我的代码很简单:

- (void)viewDidLoad {
    [super viewDidLoad];

    facebook = [[Facebook alloc] initWithAppId:fbAppId];
    NSArray* permissions = [[NSArray arrayWithObjects:@"user_about_me",@"read_stream",nil]retain];
    [facebook authorize:permissions delegate:self];     

    [facebook requestWithGraphPath:@"me" andDelegate:self];     
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   fbAppId, @"app_id",
                                   [NSString stringWithFormat: @"Some Text"], @"description",
                                   @"My Test App", @"name",
                                   @"Test Facebook Graph API",@"message", 
                                   nil];

    [facebook dialog:@"feed" andParams:params andDelegate:self];
}
- (BOOL) application: (UIApplication*) application handleOpenURL:(NSURL *)url {
    return [facebook handleOpenURL:url];
}
- (void) fbDidLogin {
NSLog(@"FB didLogin");
}
- (void) fbDidNotLogin:(BOOL)cancelled {
NSLog(@"FB didNotLogin");
}
- (void) request:(FBRequest *)request didLoad:(id)result {
    NSLog(@"request-didLoad-result");
}  
- (void)request:(FBRequest *)request didReceiveResponse:(NSURLResponse *)response {
    NSLog(@"received response");
}

到目前为止,一切似乎都很顺利。通过用户墙上的对话框发布提要效果很好。当我尝试通过以下方式获取用户信息(如姓名)时出现问题:

[facebook requestWithGraphPath:@"me" andDelegate:self];

但是 fbDidLogin 和 requestDidLoad 都没有被调用。对于 requestDidLoad,我检查了 didLoadRawResponse,因为它在请求 didLoad 之前被调用:

- (void)request:(FBRequest *)request didLoadRawResponse:(NSData*)data {

    NSString *response = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"Response is = %@",response);
    [response release];
}

我得到的响应是以下身份验证错误:

{"error":{"type":"OAuthException","message":"An active access token must be used to query information about the current user."}}

是什么原因及解决方法?

最佳答案

我已经在下面的 wiki 中添加了我的全部代码 How to retrieve Facebook response using Facebook iOS SDK

希望这对您有所帮助,这是一个有效的代码,如果您有任何问题,请告诉我。

关于ios - 使用 Facebook Graph API 提取用户信息时出现身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5207025/

相关文章:

php - Facebook FQL——非常慢

Facebook iFrame 应用程序 - 如何找到用户的当前城市?

ios - 将数据从 TodayExtension 传递到应用程序

ios - Firebase 实时数据库名称和值

javascript - 带有单页应用程序的 Facebook Pixel(Angularjs)

facebook - 在 Facebook 页面选项卡上显示用户名

javascript - 如何列出我域中的所有评论

ios - 从 navigationItem 中删除项目以编程方式显示 navigationItems 标题

ios - KVC - 带点分隔的键值编码 - 不符合 KVC 的异常(exception)

android - 在包 'cardElevation' 中找不到属性 'com.facebook.samples.audiencenetwork' 的资源标识符