ios - iOS 中事件的 FQL 查询不起作用

标签 ios events facebook-fql

因此,这是我的 FQL 查询,用于检索用户事件的场所:

    NSString* fql1 = [NSString stringWithFormat:
                      @"SELECT venue from event WHERE eid in (SELECT eid FROM event_member WHERE uid = me())"];
    NSString* fql2 = [NSString stringWithFormat:
                      @"SELECT name FROM page WHERE page_id IN (SELECT venue.id FROM #event_info)"];
    NSString* fqlStr = [NSString stringWithFormat:
                     @"{\"event_info\":\"%@\",\"event_venue\":\"%@\"}",fql1,fql2];
    NSDictionary* params = [NSDictionary dictionaryWithObject:fqlStr forKey:@"queries"];

    FBRequest *fql = [FBRequest requestWithGraphPath:@"fql.query" parameters:params HTTPMethod:@"POST"];

    [fql startWithCompletionHandler:^(FBRequestConnection *connection,
                                      id result,
                                      NSError *error) {
        if (result) {
            NSLog(@"result:%@", result);
        }
        if (error) {
            NSLog(@"error:%@", error);
        }
    }];

查询本身没问题,我在 Graph API Explorer 中试过了。但是我收到了这个错误:

error:Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x1f01da20 {com.facebook.sdk:HTTPStatusCode=403, com.facebook.sdk:ParsedJSONResponseKey={
    body =     {
        error =         {
            code = 240;
            message = "(#240) Requires a valid user to be specified (either via the session or via the API parameter for specifying the user.";
            type = OAuthException;
        };
    };
    code = 403;
}, com.facebook.sdk:ErrorSessionKey=<PFReceptionist: 0xb2426b0>}

我做错了什么?这不是我对 session 的第一个查询,我已经请求了 user_events 权限和对事件的简单非 FQL 查询工作正常。

最佳答案

它应该是这样的。如有错误请指正。

NSString *query =
@"{"
@"'event_info':'SELECT eid, venue, name, start_time, end_time, creator, host, attending_count from event WHERE eid in (SELECT eid FROM event_member WHERE uid = me())',"
@"'event_venue':'SELECT name, location, page_id FROM page WHERE page_id IN (SELECT venue.id FROM #event_info)',"
@"}";
NSDictionary *queryParam = [NSDictionary dictionaryWithObjectsAndKeys:
                            query, @"q", nil];

[FBRequestConnection startWithGraphPath:@"/fql" parameters:queryParam
                    HTTPMethod:@"GET" completionHandler:^(FBRequestConnection *connection,
                    id result, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", [error localizedDescription]);
    } else {

        NSArray* data = [result objectForKey:@"data"];
        NSArray* events = [((NSDictionary*) data[0]) objectForKey:@"fql_result_set"];
        NSArray* venues = [((NSDictionary*) data[1]) objectForKey:@"fql_result_set"];

        NSLog(@"Result: %@", result);
    }        
}

关于ios - iOS 中事件的 FQL 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15798832/

相关文章:

ios - 无法将类型 (CMAccelerometerData!,NSError!)->() 的值转换为 CMAccelerometerHandler(aka(Optional<CMAccelerometerData>,Optional<NSError>)-<())

ios - 以编程方式创建 UItextfield,以后如何获取文本?

multithreading - 我是否需要一个线程安全的字符串列表来防止这种情况下的死锁?

javascript - slider 每次滑动不超过一次迭代 (JavaScript)

facebook - 如何使用 FQL 获取墙贴的 "shares"

javascript - 如何获取非群组管理员上传的 Facebook 群组照片? (通过 JavaScript)

ios - 如何在使用 Swift 呈现新的 Viewcontroller 后关闭以前的 Viewcontroller?

iOS Appstore 应用覆盖企业应用

javascript - 火狐浏览器中的鼠标移动

python - 如何按类别和/或位置解析 Facebook 页面的 FQL 响应? (Python)