我正在尝试使用 Facebook 查询获取帮助列表(专辑 ID)。
什么有效:
从浏览器运行查询返回结果,但当我使用 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);
}
最佳答案
是的,您绝对需要包含 access_token
字段。在允许您访问该用户的数据之前,我们会验证访问 token 是否有权访问 user_photos 权限。
关于objective-c - 执行 Facebook 查询时没有返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6773263/