2011-01-06 8 views
5

Voglio postare qualcosa nel muro degli amici degli utenti.Come postare su un muro di amici usando Facebook Graph API per iPhone

Io lo uso per postare nella parete utente

SBJSON *jsonWriter = [[SBJSON new] autorelease]; 

    NSDictionary* actionLinks = [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys: 
                  @"Always Running",@"text",@"http://itsti.me/",@"href", nil], nil]; 

    NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks]; 
    NSDictionary* attachment = [NSDictionary dictionaryWithObjectsAndKeys: 
           @"a long run", @"name", 
           @"The Facebook Running app", @"caption", 
           @"it is fun", @"description", 
           @"http://itsti.me/", @"href", nil]; 
    NSString *attachmentStr = [jsonWriter stringWithObject:attachment]; 
    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            @"Share on Facebook", @"user_message_prompt", 
            actionLinksStr, @"action_links", 
            attachmentStr, @"attachment",nil]; 

    [facebook dialog:@"feed" 
      andParams:params 
      andDelegate:self]; 

ma ho bisogno di inserire nel mio muro amici. come posso fare questo

In questo post hanno menzionato su targetId devo fare qualcosa con quello.

+0

Ancora nessuna risposta :(qualcuno ans mia domanda .. – iPrabu

+0

23 giorni andati e nessuna risposta ... – iPrabu

risposta

3

Hai provato a usare,

[facebook requestWithGraphPath:@"[friend_ID]/feed" andParams:params andHttpMethod:@"POST" andDelegate:self]; 

UPDATE:

distacco su amici muro non ci sarà più lavorare con Graph API. Invece è necessario utilizzare FBDialog.

+0

Ogni profilo in FB ha un ID come questo 1405135278. È necessario impostare che, come ta rget_id. – KingofBliss

+0

Ho provato quell'uomo .. Ancora Non usare .. post nel mio profilo solo ... – iPrabu

+0

Hai controllato il tuo account FB? ho postato su ur wall usando solo questo codice;) – KingofBliss

0

@mAc

Devi autorizzare facebook prima. Quindi implementa i metodi "FBRequestDelegate" nella tua classe. Poi fare una richiesta con il grafico API come indicato di seguito

[facebook requestWithGraphPath:@"/me/friends" andDelegate:self]; 

Una volta che la richiesta è riuscita, api chiamerà il metodo delegato 'requestDdidLoad',

-(void)request:(FBRequest *)request didLoad:(id)result { 

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

} 

Modulo il risultato che si otterrà l'ID pagina di frieds

0
- (IBAction)InviteAction:(id)sender // Button action 
{ 
    if (!FBSession.activeSession.isOpen) { 
     // if the session is closed, then we open it here, and establish a handler for state changes 
     [FBSession openActiveSessionWithReadPermissions:nil 
              allowLoginUI:YES 
             completionHandler:^(FBSession *session, 
                  FBSessionState state, 
                  NSError *error) { 
              if (error) { 
               UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Invite friends process cancelled" 
                            message:nil 
                           delegate:nil 
                         cancelButtonTitle:@"OK" 
                         otherButtonTitles:nil]; 
               [alertView show]; 
              } else if (session.isOpen) { 
               [self InviteAction:sender]; 
              } 
             }]; 
     return; 
    } 

    if (self.friendPickerController == nil) { 
     // Create friend picker, and get data loaded into it. 
     self.friendPickerController = [[FBFriendPickerViewController alloc] init]; 
     self.friendPickerController.title = @"Pick Friends"; 
     self.friendPickerController.delegate = self; 
    } 

    [self.friendPickerController loadData]; 
    [self.friendPickerController clearSelection]; 

    [self presentViewController:self.friendPickerController animated:YES completion:nil]; 
} 

- (void) performPublishAction:(void (^)(void)) action 
{ 
    if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound) 
    { 
     [FBSession.activeSession requestNewPublishPermissions:@[@"publish_actions"] 
               defaultAudience:FBSessionDefaultAudienceFriends 
              completionHandler:^(FBSession *session, NSError *error) { 
               if (!error) { 
                action(); 
               } else if (error.fberrorCategory != FBErrorCategoryUserCancelled){ 
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Permission denied" 
                             message:@"Unable to get permission to post" 
                             delegate:nil 
                           cancelButtonTitle:@"OK" 
                           otherButtonTitles:nil]; 
                [alertView show]; 
               } 
              }]; 
    } else { 
     action(); 
    } 

} 



- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView 
          user:(id<FBGraphUser>)user 
{ 
    self.loggedInUser = user; 
} 


- (void)facebookViewControllerDoneWasPressed:(id)sender 
{ 
    NSMutableString *text = [[NSMutableString alloc] init]; 
    for (id<FBGraphUser> user in self.friendPickerController.selection) 
    { 

     if ([text length]) { 
      [text appendString:@","]; 
     } 
     [text appendString:[NSString stringWithFormat:@"%@",user.id]]; 
    } 

    //For post to friend's wall 
    NSDictionary *params = @{ 
          @"name" : @"Hello Please checkout this app", 
          @"caption" : @" IOS APP", 
          @"description" : @"", 
          @"picture" : @"[email protected]", 
          @"link" : @"http:www.google.com", 
          @"to":text, 

          }; 


    // Invoke the dialog 
    [FBWebDialogs presentFeedDialogModallyWithSession:nil 
              parameters:params 
              handler: 
    ^(FBWebDialogResult result, NSURL *resultURL, NSError *error) { 
     if (error) { 
      NSLog(@"Error publishing story."); 
      UIAlertView *alertshow = [[UIAlertView alloc]initWithTitle:@"Failed" message:@"Failed to Post" delegate:Nil cancelButtonTitle:@"ok" otherButtonTitles:nil]; 
      [alertshow show]; 
     } else { 
      if (result == FBWebDialogResultDialogNotCompleted) 
      { 
       NSLog(@"User canceled story publishing."); 
       UIAlertView *alertshow = [[UIAlertView alloc]initWithTitle:@"Failed" message:@"Failed to post on your friend wall" delegate:Nil cancelButtonTitle:@"ok" otherButtonTitles:nil]; 
       [alertshow show]; 
      } else { 
       NSLog(@"Story published."); 
       UIAlertView *alertshow = [[UIAlertView alloc]initWithTitle:@"Success" message:@"Posted on Friend wall" delegate:Nil cancelButtonTitle:@"ok" otherButtonTitles:nil]; 
       [alertshow show]; 
      } 
     }}]; 



    [self fillTextBoxAndDismiss:text.length > 0 ? text : @"<None>"]; 
} 

- (void)facebookViewControllerCancelWasPressed:(id)sender { 
    [self fillTextBoxAndDismiss:@"<Cancelled>"]; 
} 

- (void)fillTextBoxAndDismiss:(NSString *)text 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
}