iPhone - 如何在朋友的Facebook墙上发布图像

时间:2013-03-12 07:13:27

标签: ios facebook facebook-ios-sdk

if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound)
{
        // No permissions found in session, ask for it
    [FBSession.activeSession reauthorizeWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                                   defaultAudience:FBSessionDefaultAudienceFriends
                                                 completionHandler:^(FBSession *session, NSError *error)
    {
             // If permissions granted, publish the story
         if (!error)
         {
             [self postImageToFB] ;
         }
    }];
}
    // If permissions present, publish the story
else
{
    [self postImageToFB] ;
}
- (void) postImageToFB
{
    NSData* imageData = UIImageJPEGRepresentation(self.image, 90);
    NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    @"test", @"message",
                                    imageData, @"source",
                                    nil];

    [FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"%@/photos",friendName]
                                 parameters:params
                                 HTTPMethod:@"POST"
                          completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
    {
         NSLog(@"%@",error) ;
         if( error == NULL )
         {
             UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil
                                                             message:@"Post sucessed!!"
                                                            delegate:nil
                                                   cancelButtonTitle:@"OK"
                                                   otherButtonTitles:nil] ;
             [alert show] ;
         }
    }];
}

当我将- (void) postImageToFB更改为[NSString stringWithFormat:@"%@/photos",friendName]

时,我可以使用@"me/photos"功能在我自己的墙上发布

但是我不能在我朋友的墙上张贴,也许许可是错的或有一些我不知道的问题?

我收到了这些错误

Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xc0a7320 {com.facebook.sdk:ErrorInnerErrorKey=Error 
Domain=NSURLErrorDomain Code=-1000 "bad URL" UserInfo=0xc001ea0 {NSUnderlyingError=0xaa45270 "bad URL", NSLocalizedDescription=bad URL}, com.facebook.sdk:HTTPStatusCode=200}

2 个答案:

答案 0 :(得分:0)

从现在开始你不能发帖给朋友们了...

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

检查这个... Facebook开发人员门户网站上提到的更改 https://developers.facebook.com/roadmap/completed-changes/#february-2013

答案 1 :(得分:0)

从链接@viswa发布,我们可以阅读

  

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

如果您想让人们发布到朋友的时间表,请调用feed dialog