Iphone 使用ios sdk在个人Facebook墙上发布并同时标记多个好友。。?

Iphone 使用ios sdk在个人Facebook墙上发布并同时标记多个好友。。?,iphone,objective-c,ios,facebook,facebook-graph-api,Iphone,Objective C,Ios,Facebook,Facebook Graph Api,我试图在我的墙上张贴一条消息,并希望在此帖子中同时标记多个用户。我在FB帖子上尝试了各种选择,但都做不到。可能是我做得不对。非常感谢您的帮助,我就是这样做的 NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"Test 2",@"message", @"1000

我试图在我的墙上张贴一条消息,并希望在此帖子中同时标记多个用户。我在FB帖子上尝试了各种选择,但都做不到。可能是我做得不对。非常感谢您的帮助,我就是这样做的

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"Test 2",@"message",
                               @"100004311843201,1039844409", @"to",
                               nil];
[self.appDelegate.facebook requestWithGraphPath:@"me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self];

我也尝试了
message\u标记
,但似乎效果不太好。

您需要使用Open Graph来标记带有消息的人。me/feed Graph API终结点不支持此操作

提到标签

动作标记:


您可以查看最新的FacebookSDK for iOS附带的美味示例应用程序,了解如何做到这一点。

您需要使用Open Graph用消息标记人。me/feed Graph API终结点不支持此操作

提到标签

动作标记:


您可以查看最新的FacebookSDK for iOS附带的精美示例应用程序,了解如何执行此操作。

要标记处于您fb状态的朋友,您需要使用FBFriendPickerViewController获得朋友的“Facebook id”,使用FBPlacePickerViewController获得朋友的“PlaceID”。下面的代码将帮助您

NSString *apiPath = nil;

apiPath = @"me/feed";

if(![self.selectedPlaceID isEqualToString:@""]) {

    [params setObject:_selectedPlaceID forKey:@"place"];

}

NSString *tag  = nil;
if(mSelectedFriends != nil){
    for (NSDictionary *user in mSelectedFriends) {
        tag = [[NSString alloc] initWithFormat:@"%@",[user objectForKey:@"id"] ];

        [tags addObject:tag];

    }

    NSString *friendIdsSeparation=[tags componentsJoinedByString:@","];
    NSString *friendIds = [[NSString alloc] initWithFormat:@"[%@]",friendIdsSeparation ];

    [params setObject:friendIds forKey:@"tags"];
}

FBRequest *request = [[[FBRequest alloc] initWithSession:_fbSession graphPath:apiPath parameters:params HTTPMethod:@"POST"] autorelease];

[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    [SVProgressHUD dismiss];

    if (error) {
        NSLog(@"Error ===== %@",error.description);
        if (_delegate != nil) {
            [_delegate facebookConnectFail:error requestType:FBRequestTypePostOnWall];
        }else{
            NSLog(@"Error ===== %@",error.description);
        }


    }else{

        if (_delegate != nil) {
            [_delegate faceboookConnectSuccess:self requestType:FBRequestTypePostOnWall];
        }
    }

要标记处于您fb状态的朋友..您需要使用FBFriendPickerViewController获得朋友的“facebook id”,并使用FBPlacePickerViewController获得朋友的“地点id”。下面的代码将帮助您

NSString *apiPath = nil;

apiPath = @"me/feed";

if(![self.selectedPlaceID isEqualToString:@""]) {

    [params setObject:_selectedPlaceID forKey:@"place"];

}

NSString *tag  = nil;
if(mSelectedFriends != nil){
    for (NSDictionary *user in mSelectedFriends) {
        tag = [[NSString alloc] initWithFormat:@"%@",[user objectForKey:@"id"] ];

        [tags addObject:tag];

    }

    NSString *friendIdsSeparation=[tags componentsJoinedByString:@","];
    NSString *friendIds = [[NSString alloc] initWithFormat:@"[%@]",friendIdsSeparation ];

    [params setObject:friendIds forKey:@"tags"];
}

FBRequest *request = [[[FBRequest alloc] initWithSession:_fbSession graphPath:apiPath parameters:params HTTPMethod:@"POST"] autorelease];

[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    [SVProgressHUD dismiss];

    if (error) {
        NSLog(@"Error ===== %@",error.description);
        if (_delegate != nil) {
            [_delegate facebookConnectFail:error requestType:FBRequestTypePostOnWall];
        }else{
            NSLog(@"Error ===== %@",error.description);
        }


    }else{

        if (_delegate != nil) {
            [_delegate faceboookConnectSuccess:self requestType:FBRequestTypePostOnWall];
        }
    }

如果您遵循有关如何为iOS设置Open Graph的教程,那么如果您使用friendsPickerController,您可以执行以下操作:

// Create an action
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];

//Iterate over selected friends
if ([friendPickerController.selection count] > 0) {
    NSMutableArray *temp = [NSMutableArray new];
    for (id<FBGraphUser> user in self.friendPickerController.selection) {
        NSLog(@"Friend selected: %@", user.name);
        [temp addObject:[NSString stringWithFormat:@"%@", user.id]];
    }
    [action setTags:temp];
}
//创建一个操作
id action=(id)[FBGraphObject graphObject];
//迭代选定的朋友
如果([friendPickerController.selection count]>0){
NSMUTABLEARRY*temp=[NSMUTABLEARRY new];
for(self.friendPickerController.selection中的用户id){
NSLog(@“选定的朋友:%@”,用户名);
[临时添加对象:[NSString stringWithFormat:@“%@”,user.id]];
}
[动作设置标签:临时];
}

基本上,您可以在操作的“tags”属性上设置朋友ID数组

如果您遵循有关如何为iOS设置Open Graph的教程,您可以使用friendsPickerController执行以下操作:

// Create an action
id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject];

//Iterate over selected friends
if ([friendPickerController.selection count] > 0) {
    NSMutableArray *temp = [NSMutableArray new];
    for (id<FBGraphUser> user in self.friendPickerController.selection) {
        NSLog(@"Friend selected: %@", user.name);
        [temp addObject:[NSString stringWithFormat:@"%@", user.id]];
    }
    [action setTags:temp];
}
//创建一个操作
id action=(id)[FBGraphObject graphObject];
//迭代选定的朋友
如果([friendPickerController.selection count]>0){
NSMUTABLEARRY*temp=[NSMUTABLEARRY new];
for(self.friendPickerController.selection中的用户id){
NSLog(@“选定的朋友:%@”,用户名);
[临时添加对象:[NSString stringWithFormat:@“%@”,user.id]];
}
[动作设置标签:临时];
}
基本上,您可以在操作的“tags”属性上设置朋友ID数组