我使用了以下代码
facebook = [[Facebook alloc] initWithAppId:APPLICATION_ID];
facebook.accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"AccessToken"];
facebook.expirationDate = (NSDate *) [[NSUserDefaults standardUserDefaults] objectForKey:@"ExpirationDate"];
NSArray * _permissions = [[NSArray arrayWithObjects: @"read_stream",@"user_about_me",nil] retain];
if ([facebook isSessionValid] == NO)
{
[facebook authorize:_permissions delegate:self];
}
[facebook requestWithGraphPath:@"me" andDelegate:self];
我想访问用户个人资料信息。但我收到以下错误信息。
REsult:Error Domain=facebookErrDomain Code=10000 "The operation couldn’t be completed. (facebookErrDomain error 10000.)" UserInfo=0x6d41090 {error=<CFBasicHash 0x6d91570 [0x2b4a380]>{type = mutable dict, count = 2,
entries =>
2 : <CFString 0x6d8c990 [0x2b4a380]>{contents = "type"} = <CFString 0x6d1af30 [0x2b4a380]>{contents = "OAuthException"}
3 : <CFString 0x6d91b90 [0x2b4a380]>{contents = "message"} = <CFString 0x6d3a000 [0x2b4a380]>{contents = "An active access token must be used to query information about the current user."}
可以帮助我吗?我是iphone开发的新手。
提前感谢你。
答案 0 :(得分:2)
在授权过程完成之前,您无法从Facebook请求信息。当您调用authorize时,它只会启动自动化过程(它是异步的)。您必须实现FBSessionDelegate以侦听何时调用fbDidLogin方法。只有这样才能对数据执行请求。
一种选择是创建一个包裹Facebook类的控制器,并传入一个完成块,一旦用户完成授权过程就会调用该完成块。