以用户身份将照片发布到 Facebook 粉丝页面。 iOS Facebook SDK 3.1

Posted

技术标签:

【中文标题】以用户身份将照片发布到 Facebook 粉丝页面。 iOS Facebook SDK 3.1【英文标题】:Posting a photo to Facebook fan page as user. iOS Facebook SDK 3.1 【发布时间】:2012-10-02 08:47:50 【问题描述】:

我正在尝试使用 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://***.com", @"link", nil] HTTPMethod:@"POST"];

将帖子正确链接到 Facebook 页面。

要打开我正在使用代码的会话:

[FBSession openActiveSessionWithPermissions:[NSArray arrayWithObjects:@"publish_stream", @"photo_upload", nil]
                               allowLoginUI:YES
                          completionHandler:^(FBSession *session, FBSessionState state, NSError *error) 
...
                          ];

我知道 openActiveSessionWithPermissions 已被弃用,在 ios 5 和 6 上使用它来实现相同的 SSO 行为。

更新

或者是否可以上传带有访问令牌替换的照片?使用页面访问令牌而不是用户访问令牌。如果是,如何在不强制用户以页面管理员身份登录的情况下以编程方式获取页面访问令牌?

你会建议我做什么? 谢谢!

BR。 尤金。

【问题讨论】:

【参考方案1】:

https://developers.facebook.com/docs/reference/api/page/#photos 说,

“您可以通过向具有 publish_stream 和 manage_pages 权限 [...]的 PAGE_ID/photos 发出 HTTP POST 请求将照片发布到主页的墙上 […]”

听起来像“普通”用户不允许通过 API 将图像发布到页面的墙上。

【讨论】:

感谢您的回复!我找到了这个东西webspeaks.in/2011/12/upload-photos-to-facebook-fan-page.html,我可以使用它将照片上传到 Facebook 页面相册。我希望在 iOS 应用程序中具有相同的行为。你知道他们是怎么做到的吗? 他们首先获得了一个页面访问令牌。所以你必须先从用户那里获得 manage_pages 权限(用户当然必须是该页面的管理员),然后获取页面访问令牌才能上传照片。 @CBroe : 你能添加如何获得manage_pages 权限的示例代码吗? @ShivanRaptor:您只需通过登录流程中的scope 参数请求即可。

以上是关于以用户身份将照片发布到 Facebook 粉丝页面。 iOS Facebook SDK 3.1的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 应用程序中,如何将照片发布到 Facebook 粉丝页面。在它之前如何喜欢它?使用 facebook-ios-sdk

facebook ios sdk - 上传照片到粉丝页面

Facebook 选项卡应用程序无法访问粉丝专页的照片

在 iOS Facebook SDK 3.0 上作为粉丝页面发布

使用 Facebook 的访问令牌在 UIWebView 中显示带有经过身份验证的用户会话的粉丝页面

通过 API 将 Facebook 应用程序添加到粉丝页面