2

我正在尝试使用用户连接中的位置来检索用户在某个位置被标记的帖子、状态和照片。问题是,虽然在 Graph Api Explorer 中使用适当的权限并获得所需的结果,但在我的应用程序中却没有发生同样的情况。响应仅返回缺少位置键的用户 ID。我使用的代码如下:

对于权限:

NSArray *permissions = [[NSArray alloc] initWithObjects:@"friends_status",@"friends_photos",nil];

if (!FBSession.activeSession.isOpen) {
    // if the session is closed, then we open it here, and establish a handler for state changes
    [FBSession openActiveSessionWithReadPermissions:permissions
                                       allowLoginUI:YES
                                  completionHandler:^(FBSession *session,
                                                         FBSessionState state,
                                                         NSError *error) {
        if (error) {
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
                                                                message:error.localizedDescription
                                                               delegate:nil
                                                      cancelButtonTitle:@"OK"
                                                      otherButtonTitles:nil];
            [alertView show];
        } else if (session.isOpen) {
            [self pickFriendsButtonClick:sender];
        }
    }];
    return;
}

要检索数据:

for (int i = 0; i < [selectedFbFriends count]; i++) {
    NSString *path = [NSString stringWithFormat:@"me/friends/%@?fields=locations",selectedFbFriends[i]];

    FBRequest *friendRequest = [FBRequest requestForGraphPath:path];
    [friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphObject> result, NSError *error) {

        NSLog(@"%@",result[@"data"]);
}

结果与在 Graph Api Explorer 中使用相同的路径不同。我只得到用户ID。我的脑袋要炸了,因为我找不到哪里出了问题,而且许可似乎是正确的。任何帮助将不胜感激。:)

4

1 回答 1

0

似乎该函数不将参数视为路径的一部分。你可以使用这个:

- (FBRequest*)requestWithGraphPath:(NSString *)graphPath
               andParams:(NSMutableDictionary *)params
               andDelegate:(id <FBRequestDelegate>)delegate;

资源:https://developers.facebook.com/docs/reference/iossdk/request/

其中 params 将是:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"locations" forKey:@"fields"];
于 2013-07-08T21:40:37.400 回答