2011-01-06 22 views
5

Quiero publicar algo en el muro de amigos de los usuarios.Cómo publicar contenido en un muro de amigos usando Facebook Graph API para iPhone

Lo utilizo para colocar en la pared de usuario

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]; 

pero necesito para colocar en la pared de mi amigos. ¿Cómo puedo hacer esto

En este post que han mencionado sobre targetId tengo que hacer algo con eso.

+0

aún no hay respuesta :(Alguien ans mi pregunta .. – iPrabu

+0

23 días desaparecido y no hay respuesta ... – iPrabu

Respuesta

3

¿Ha intentado utilizar,

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

ACTUALIZACIÓN:

Difusión en la pared de amigos ya no irán de trabajar con Graph API. En su lugar, debe usar FBDialog.

+0

Cada perfil en FB tiene un id como esto 1405135278. debe establecer que a medida que ta rget_id. – KingofBliss

+0

Lo intenté con ese hombre ... Aún así no lo uso ... lo publico solo en mi perfil ... – iPrabu

+0

¿Revisó su cuenta de FB? publiqué en tu muro usando este código solamente;) – KingofBliss

0

@mAc

Primero debe autorizar el facebook. Luego implementa los métodos 'FBRequestDelegate' para su clase. A continuación, hacer una petición con la API gráfica que se indican a continuación

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

vez que su solicitud tuvo éxito, api llamará al método delegado requestDdidLoad ',

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

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

} 

formar el resultado obtendrá el ID de la página 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]; 
} 
Cuestiones relacionadas