Результаты не возвращаются при выполнении запроса Facebook - PullRequest
1 голос
/ 21 июля 2011

Я пытаюсь получить список помощи (идентификаторы альбомов) с помощью запроса 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);
}

1 Ответ

1 голос
/ 23 июля 2011

Да, вам обязательно нужно включить поле access_token. Мы проверяем, что токен доступа имеет доступ к разрешению user_photos, прежде чем разрешить вам доступ к данным этого пользователя.

...