如何在iphone上以编程方式使用fbrequest在facebook朋友墙上发帖?

时间:2013-04-23 10:43:03

标签: iphone ios facebook

我搜索了每一个地方,但没有得到单一提示如何做到....我也得到了一些代码,但它没有工作......任何人都可以建议我任何教程或示例代码来做到这一点!提前致谢 我正在尝试以下代码::

-(void)inviteFriend:(CustomButton *)sender
{

    NSString *str=[NSString stringWithFormat:@"%@/feed",sender.inviteUserId];
    if (FBSession.activeSession.isOpen)
    {
        //UIImage *image = [UIImage imageNamed:@"testImage.png"];

        hudApp = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        hudApp.labelText = @"Page Sharing...";
        [self performSelector:@selector(timeout:) withObject:nil afterDelay:60*5];

        // NSString *fbMessage = [NSString stringWithFormat:@"test"];
        NSString *fbMessage = @"hello testing";


        NSMutableDictionary* params=[NSDictionary dictionaryWithObjectsAndKeys:fbMessage, @"message", FBSession.activeSession.accessToken, @"access_token", nil];

        NSLog(@"feed::%@",str);

        [FBRequestConnection startWithGraphPath:str
                             parameters:params
                             HTTPMethod:@"POST"
                      completionHandler:^(FBRequestConnection *connection, id result,NSError *error) {
                                  NSLog(@"result::%@",result);


                 if(error)
                 {
                  NSLog(@"fail : %@",error.localizedDescription);
                hudApp.labelText = [NSString stringWithFormat:@"%@",error.localizedDescription];
                                  }
                                  else
                                  {
                                      NSLog(@"Success facebook post");
                                      hudApp.labelText = [NSString stringWithFormat:@"Success"];
                                      // txtView.text = @"success";
                                      NSLog(@"success");
                                  }

                                  hudApp.mode = MBProgressHUDModeCustomView;
                                  [self performSelector:@selector(dismissHUD:) withObject:nil afterDelay:1.0];
                              }];
    }
    else
    {
        NSArray *permissions = [NSArray arrayWithObject:@"publish_stream"];
        [FBSession openActiveSessionWithPermissions:permissions allowLoginUI:YES
                          completionHandler:^(FBSession *session, FBSessionState state,NSError *error) {
                                      NSLog(@"session.permissions ? : %@", session.permissions);
                                      [self sessionDoneForPageShare:session state:state error:error withuserid:str];
                                  }
         ];
    }


}


-(void)sessionDoneForPageShare:(FBSession *)session state:(FBSessionState)state error:(NSError *)error withuserid :(NSString *)usreid
{
    //UIImage *image = [UIImage imageNamed:@"testImage.png"];

    NSLog(@"feed::%@",usreid);
    hudApp = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hudApp.labelText = @"Page Sharing...";
    [self performSelector:@selector(timeout:) withObject:nil afterDelay:60*5];

    //NSString *fbMessage = [NSString stringWithFormat:@"test"];
    NSString *fbMessage = @"hello testing";

    NSLog(@"State : %d **** Facebook Message : %@",state,fbMessage);

   // NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys: fbMessage, @"message", nil];

    NSMutableDictionary* params=[NSDictionary dictionaryWithObjectsAndKeys:fbMessage, @"message", FBSession.activeSession.accessToken, @"access_token", nil];

    [FBRequestConnection startWithGraphPath:usreid
                         parameters:params
                         HTTPMethod:@"POST"
                  completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

                              if(error)
                              {
                                  NSLog(@"fail : %@",error.localizedDescription);
                                  // txtView.text = [NSString stringWithFormat:@"%@",error.localizedDescription];
                                  NSLog(@"%@",[NSString stringWithFormat:@"%@",error.localizedDescription]);
                                  hudApp.labelText = [NSString stringWithFormat:@"%@",error.localizedDescription];
                              }
                              else
                              {
                                  NSLog(@"Success facebook post");
                                  hudApp.labelText = [NSString stringWithFormat:@"Success"];
                                  //txtView.text = @"success";
                                  NSLog(@"success");
                              }

                              hudApp.mode = MBProgressHUDModeCustomView;
                              [self performSelector:@selector(dismissHUD:) withObject:nil afterDelay:1.0];
                          }];
}

1 个答案:

答案 0 :(得分:1)

要发布到朋友的留言板,您需要向/{friend_id}/feed发出请求。但是,Facebook有disabled posting to friends' wall since February 6, 2013

  

删除通过图谱API发布到朋友圈的功能

     

我们将删除通过图表发布到用户朋友的墙上的功能   API。具体来说,针对[user_id] / feed的帖子,其中[user_id]是   不同于session用户,或者stream.publish调用的地方   target_id用户与会话用户不同,将失败。如果你   想让人们发布他们朋友的时间表,调用   提要对话框。通过用户提及标记或包含朋友的故事   动作标记将显示在朋友的时间轴上(假设为   朋友批准标签)。有关详细信息,请参阅此博客文章。