我正在尝试使用Facebook SDK 3.1的用户将照片发布到Facebook页面。
当我使用以下代码创建上传图像请求时:
FBRequest *uploadPhotoRequest = [FBRequest requestWithGraphPath:@"/${FAN_PAGE_ID}/photos/" parameters:[NSDictionary dictionaryWithObjectsAndKeys:self.imageToShare, @"source", nil] HTTPMethod:@"POST"];
图像直接进入用户的时间线,而不是页面的时间线。
但是当我发布链接时:
FBRequest *request = [FBRequest requestWithGraphPath:@"/${FAN_PAGE_ID}/feed/" parameters:[NSDictionary dictionaryWithObjectsAndKeys:@"http://stackoverflow.com", @"link", nil] HTTPMethod:@"POST"];
将帖子正确链接到脸书页面。
要打开会话,我正在使用代码:
[FBSession openActiveSessionWithPermissions:[NSArray arrayWithObjects:@"publish_stream", @"photo_upload", nil]
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
...
}];
我知道openActiveSessionWithPermissions
已被弃用,在iOS 5和6上将其用于相同的SSO行为。
更新
或者是否可以上传带有访问令牌替换的照片?使用页面访问令牌而不是用户访问令牌。如果是,如何在不强制用户以页面管理员身份登录的情况下以编程方式获取页面访问令牌?
你会建议我怎么做?
谢谢!
BR.尤金。
https://developers.facebook.com/docs/reference/api/page/#photos 说,
"您可以通过向具有publish_stream和manage_pages权限的PAGE_ID/照片发出 HTTP POST 请求,将照片发布到主页留言板 [...]"
听起来"普通"用户不允许通过API将图像发布到页面的墙上。