我正在尝试使用另一个使用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];
}
问题在于授权按预期完成,但在尝试实际发布时,我在嵌入式浏览器中看到一条错误消息“无法发布到用户的墙上”。
任何人都可以帮我吗?
答案 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];