iOS Facebook无法在另一个用户的墙上发布

时间:2012-01-19 09:25:55

标签: ios objective-c facebook facebook-wall

我正在尝试使用另一个使用FBConnect的用户在另一个用户的墙上发帖。我正在使用iOS Facebook API的嵌入式方法(也就是说,我强迫浏览器出现在我的应用程序中,所以我根本不会离开应用程序)。此方法适用于发布到同一用户的墙上,但不能在另一个用户的墙上工作。

    self.facebook = [[[Facebook alloc] initWithAppId:self.appID andDelegate:self] autorelease];
if ([self.facebook isSessionValid]) {
    [self proceedToPost];
}else{
    NSArray *permissions = [NSArray arrayWithObjects:@"publish_stream", @"email", @"read_stream", @"manage_pages", nil];
    [self.facebook authorize:permissions];
}

- (void)proceedToPost

{

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"aName", @"name",
                               self.appID, @"app_id",
                               self.title, @"caption",
                               self.link, @"link",
                               @"animateURL", @"picture",
                               nil];
[params setObject:"my-user-profile-id" forKey:@"to"];
[self.facebook dialog:@"feed" andParams:params andDelegate:self];

}

问题在于授权按预期完成,但在尝试实际发布时,我在嵌入式浏览器中看到一条错误消息“无法发布到用户的墙上”。

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您是否从扩展权限请求了publish_stream权限?

有关publish_stream权限的文档:

  

使您的应用能够向用户发布内容,评论和赞   流和用户的朋友的流。有了这个许可,   您可以随时将内容发布到用户的Feed,而无需   需要offline_access。但请注意Facebook   建议用户启动的共享模型。

http://developers.facebook.com/docs/reference/api/permissions/

您可以申请这样的许可:

 NSArray *permissions = [[NSArray alloc] initWithObjects:
            @"publish_stream",
            nil];
        [facebook authorize:permissions];
        [permissions release];