2013-12-12 35 views
0

我正在嘗試對其貼上多個朋友的帖子,到目前爲止,我已經設法發佈在我的牆上,現在只剩下標籤了。我已經檢查了這個問題堆棧Post on personal Facebook wall using ios sdk and tag multiple friends at once..?,並檢查了在Facebook的標記在https://developers.facebook.com/docs/opengraph/guides/tagging/的描述,但仍不知道我應該如何在iOS中實現這一點。這是我在我的牆上如何在iOS中的帖子上標記多個朋友

-(void)shareAdOnFacebook:(NSString *) wallMessage UserId:(NSString *) userID 
{ 
     NSArray *permissions =[NSArray arrayWithObjects:@"publish_actions",@"publish_stream",@"manage_friendlists", nil]; 

    NSMutableDictionary* params = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Test miLineup!", @"message", @"Iphone Apps", @"name", nil]; 

    NSLog(@"\nparams=%@\n", params); 

    NSLog(@"PERMISSIONS:%@",[[FBSession activeSession]permissions]); 
    if ([[FBSession activeSession]isOpen]) { 

     if ([[[FBSession activeSession]permissions]indexOfObject:@"publish_actions"] == NSNotFound) { 

      [[FBSession activeSession] requestNewPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends 
                completionHandler:^(FBSession *session,NSError *error){ 
                 NSLog(@"Perform operation"); 
                 [self postOnWall:wallMessage UserId:userID]; 
                }]; 

     }else{ 
      NSLog(@"Perform operation"); 
      [self postOnWall:wallMessage UserId:userID]; 
     } 
    }else{ 

     [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] 
              defaultAudience:FBSessionDefaultAudienceOnlyMe 
               allowLoginUI:YES 
             completionHandler:^(FBSession *session, FBSessionState status, NSError *error) { 
              if (!error && status == FBSessionStateOpen) { 
               NSLog(@"Status is Open"); 
               [self postOnWall:wallMessage UserId:userID]; 
              }else{ 
               NSLog(@"error"); 
              } 
             }]; 
    } 

} 

- (void)postOnWall:(NSString *) wallMessage UserId:(NSString *) userID 
{ 
    NSNumber *testMessageIndex=[[NSNumber alloc] init]; 
    if ([[NSUserDefaults standardUserDefaults] objectForKey:@"testMessageIndex"]==nil) 
    { 
     testMessageIndex=[NSNumber numberWithInt:100]; 
    } 
    else 
    { 
     testMessageIndex=[[NSUserDefaults standardUserDefaults] objectForKey:@"testMessageIndex"]; 
    }; 
    testMessageIndex=[NSNumber numberWithInt:[testMessageIndex intValue]+1]; 
    [[NSUserDefaults standardUserDefaults] setObject:testMessageIndex forKey:@"testMessageIndex"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 

    // create the connection object 
    FBRequestConnection *newConnection = [[FBRequestConnection alloc] init]; 

    // create a handler block to handle the results of the request for fbid's profile 
    FBRequestHandler handler = 
    ^(FBRequestConnection *connection, id result, NSError *error) { 
     // output the results of the request 
     [self requestCompleted:connection forFbID:@"me" result:result error:error]; 
    }; 


    NSString *messageString=wallMessage; 


    FBRequest *request= [FBRequest requestWithGraphPath:userID parameters:[NSDictionary dictionaryWithObject:messageString forKey:@"message"] HTTPMethod:@"POST"]; 

    [newConnection addRequest:request completionHandler:handler]; 

    // if there's an outstanding connection, just cancel 
    [self.requestConnection cancel]; 

    // keep track of our connection, and start it 
    self.requestConnection = newConnection; 
    [newConnection start]; 
} 

// FBSample logic 
// Report any results. Invoked once for each request we make. 
- (void)requestCompleted:(FBRequestConnection *)connection 
       forFbID:fbID 
        result:(id)result 
        error:(NSError *)error 
{ 
    NSLog(@"request completed"); 

    // not the completion we were looking for... 
    if (self.requestConnection && 
     connection != self.requestConnection) 
    { 
     NSLog(@" not the completion we are looking for"); 
     return; 
    } 

    // clean this up, for posterity 
    self.requestConnection = nil; 

    if (error) 
    { 
     NSLog(@" error:%@",error); 
    } 
    else 
    { 
     NSLog(@" ok"); 

    }; 
} 

通過這個我可以張貼在牆上的自我張貼當前的代碼,我需要修改它來標記其他用戶。

回答

相關問題