使用Facebook Graph API提取用户信息时出现身份validation错误

我试图通过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,我在请求didLoad之前调用了didLoadRawResponse:

 - (void)request:(FBRequest *)request didLoadRawResponse:(NSData*)data { NSString *response = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"Response is = %@",response); [response release]; } 

我得到的回应是以下身份validation错误:

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

是什么原因和解决scheme?

我已经在下面的wiki中添加了我的整个代码如何使用Facebook iOS SDK检索Facebook响应

希望这会帮助你,这是一个工作代码,如果你有任何问题,请让我知道。