1
我正在尝试使用Facebook查询来获取援助(专辑ID)列表。在做Facebook查询时没有返回任何结果
什么工作:
运行来自浏览器的查询返回的结果,但是当我使用Facebook Connect不返回任何值运行。
我遇到的问题是特定于相册对象,查询用户表时我得到了结果。
我能想到的唯一真正的区别是,从浏览器运行时,包含access_token参数,从浏览器运行而不返回任何内容。
认证:
我使用的是这里列出的OAuth认证:Mobile Apps - Getting Started 我需要包括在参数列表中做的access_token查询时?
验证码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
facebook = [[Facebook alloc] initWithAppId:@"<myAppId>"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:nil delegate:self];
}
NSArray* permissions = [[NSArray arrayWithObjects:
@"email", @"read_stream", nil] retain];
[facebook authorize:permissions delegate:self];
NSString *fql = [NSString stringWithFormat:@"SELECT aid FROM album WHERE owner=me()"];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:fql, @"query", @"json", @"format", nil];
[facebook requestWithMethodName:@"fql.query" andParams:params andHttpMethod:@"GET" andDelegate:self];
return YES;
}
- (void)request:(FBRequest *)request didLoad:(id)result {
if ([result isKindOfClass:[NSArray class]]) {
result = [result objectAtIndex:0]; }
NSLog(@"didLoad() received result: %@", result);
}
谢谢杰夫,不得不根据你的回答改变几件事情。我已经添加了user_photos权限。 '的NSArray *权限= [[NSArray的arrayWithObjects: \t \t \t \t \t \t \t @ “电子邮件”,@ “read_stream”,@ “user_photos”,零]保留];'和的access_token paramater'的NSMutableDictionary * PARAMS = [的NSMutableDictionary dictionaryWithObjectsAndKeys:fql,@“query”,@“json”,@“format”,facebook.accessToken,@“access_token”,nil];' – Allfocus