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

Posted

技术标签:

【中文标题】iPhone - 如何在朋友的 Facebook 墙上发布图像【英文标题】:iPhone - How to post image on friend's facebook wall 【发布时间】:2013-03-12 07:13:26 【问题描述】:
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] ;
         
    ];

当我将[NSString stringWithFormat:@"%@/photos",friendName] 更改为@"me/photos" 时,我可以使用- (void) postImageToFB 功能在自己的墙上发帖

但是我不能在朋友的墙上发帖,可能是权限不对或者有一些我不知道的问题?

我收到了这些错误

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

【问题讨论】:

【参考方案1】:

从现在开始你不能发布到朋友墙...

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

检查这个...在 facebook 开发者门户中提到的更改 https://developers.facebook.com/roadmap/completed-changes/#february-2013

【讨论】:

【参考方案2】:

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

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

如果您想允许人们发布到他们朋友的时间线,请调用feed dialog。

【讨论】:

以上是关于iPhone - 如何在朋友的 Facebook 墙上发布图像的主要内容,如果未能解决你的问题,请参考以下文章

如何邀请朋友参加活动? iPhone中的Facebook Graph API

如何邀请 Facebook 好友使用我的应用程序?

如果目标 iPhone 应用在 App Store 上不可用,如何测试 Facebook SDK 的 apprequest?

iPhone 联系人的图片

如何使用 facebook sdk 在 ios 中创建 facebook 测试用户

Facebook画布+苹果应用商店的建议