Я пытаюсь получить список помощи (идентификаторы альбомов) с помощью запроса Facebook.
Что работает:
Выполнение запроса из браузера возвращаетрезультатов, но когда я запускаю его с помощью Facebook Connect, никакие значения не возвращаются.
Проблема, с которой я столкнулся, связана с конкретным объектом альбома, я получаю результаты при запросе таблицы пользователя.
Единственное единственноеРеальная разница, о которой я могу думать, заключается в том, что при запуске из браузера включается параметр access_token, при запуске из браузера без этого ничего не возвращается.
Аутентификация:
Я использую OAuthдля проверки подлинности, как указано здесь: Мобильные приложения - Начало работы Нужно ли включать 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);
}