1

最近のチェックインを取得し、地名を見つけたいと思っています。現在、user_status権限を要求しています。まず、次のようなデータをリクエストします。

-(void) makeCheckinRequest{
NSString *query =
@"{"
@"'checkins':'SELECT coords, page_id, timestamp FROM checkin WHERE author_uid= me()',"
@"'places':'SELECT name FROM place WHERE page_id IN (SELECT page_id FROM #checkins)',"
@"}";

NSDictionary *queryParam =
[NSDictionary dictionaryWithObjectsAndKeys:query, @"q", nil];
// Make the API request that uses FQL
[FBRequestConnection startWithGraphPath:@"/fql"
                             parameters:queryParam
                             HTTPMethod:@"GET"
                      completionHandler:^(FBRequestConnection *connection,
                                          id result,
                                          NSError *error) {
                          if (error) {
                              NSLog(@"Error: %@", [error localizedDescription]);
                          } else {
                              [self extractRelevantRecentCheckinsFor:result];
                              NSLog(@"Result: %@", result);
                          }
                      }];

}

...次に、このメソッドによって返されるデータをインターセプトします。

-(void) extractRelevantRecentCheckinsFor:(id) graphObject{

NSDictionary *resultDict = (NSDictionary *)graphObject;
NSArray *data = [resultDict objectForKey:@"data"];
for (FBGraphObject *friendObj in data) {
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:
                    [[friendObj objectForKey:@"timestamp"] intValue]];
    DLog(@"checkin date is %@", [[theStoryline.common dayAndTime] stringFromDate:date]);
}

}

問題は、アイテムの数が一致しないdata2つが含まれていることです。キー名の:FBGraphObjectsには15個のオブジェクトがあり、すべて有効な座標を持っています。 FBGraphObjectcheckins

FBGraphObjectキー名の:にplacesは14個のオブジェクトがあります。

異なる配列サイズを取得することはどのように可能でしょうか?

4

1 に答える 1

1

答えが見つかりました: 結局のところ、Facebook は、チェックインするたびに「チェックイン」のリストを返しますが、(少なくとも、私が書いたマルチクエリの方法では) の一意のリストを返します。 「場所」。これは、ある場所に 2 回チェックインしたことを意味します。

于 2013-03-18T18:45:23.870 に答える