阅读 Facebook 用户的状态更新需要 iOS 上的 read_mailbox 权限

Posted

技术标签:

【中文标题】阅读 Facebook 用户的状态更新需要 iOS 上的 read_mailbox 权限【英文标题】:Reading status updates of Facebook user requires read_mailbox permissions on iOS 【发布时间】:2013-09-13 15:24:07 【问题描述】:

我正在移植一个以前可以正常工作的旧 ios 应用程序(我使用的是 iOS 6 框架中的 ACAccount 类,这变得非常有问题,所以我正在切换到 Facebook iOS SDK)。我已经好几个月没有碰过这个应用程序了,在我再次开始工作之前它曾经可以工作。我正在向https://graph.facebook.com/me/statuses?fields=message&limit=200 发出请求,该请求通常应返回当前用户最近 200 次更新的文本内容。曾经。

现在,我得到了这个:

我已经仔细检查了 connection 对象中的 URL 是否与完成块中的相同 URL,它应该返回状态(FacebookSelfStatusesURL 无论如何都是硬编码的常量字符串)。访问令牌具有正确的权限,包括读取状态更新所需的user_status 权限。读取用户状态与读取邮箱无关,这显然不是我要求的权限。

我是否遗漏了一些明显的东西,还是 SDK 错误(我已安装最新的 v3.7.1,截至 2013 年 9 月 13 日)?如果这是一个错误,在修复之前是否有任何解决方法?

谢谢,

可以。

【问题讨论】:

在您授权用户并请求权限时向我们显示代码 现在才意识到这个问题。与身份验证无关。现在发布。 我认为您只是不要求扩展权限(read_mailbox):developers.facebook.com/docs/reference/login/… 不,反正我不需要那个。添加了答案。尽管 Facebook 告诉我我需要该许可,但表现得有点奇怪。 【参考方案1】:

我发现了问题:

我使用带有SLRequest 的绝对路径,例如https://graph.facebook.com/me/statuses?fields=message&limit=200,这对于iOS 社交框架来说很好。但 Facebook SDK 需要相对路径,因此通过剥离 graph.facebook.com 基数将路径更改为相对路径是可行的。我的“URL”现在是/me/statuses?fields=message&limit=200,它可以工作了。不过,可以以更好的方式处理这些 URL,而不是告诉与我要实现的目标无关的错误消息。

无论如何,如果您使用的是 Facebook SDK,请注意使用相对图形路径,而不是绝对 URL。

【讨论】:

这很奇怪 - 错误表明您没有 read_mailbox 权限,所以看起来您没有执行 [[FBSession activeSession] requestNewPublishPermissions.但如果这对你有用,很高兴我们能提供帮助:P 我最好的猜测是,因为它期待一个相对 URL,可能它搞砸了,并且由于 URL 中的“消息”一词,它在内部解析 URL 以决定我试图以某种方式访问​​用户的邮箱,并抱怨没有该权限。它肯定需要检查正确的 URL 格式,并进行更正(或者至少,引发格式不正确的错误,而不是模糊的权限错误)。

以上是关于阅读 Facebook 用户的状态更新需要 iOS 上的 read_mailbox 权限的主要内容,如果未能解决你的问题,请参考以下文章

如何让用户在 Facebook 页面上的标签发布的 Facebook 状态更新中标记他们的朋友?

iOS:Facebook 发帖隐私

ActionScript 3 Facebook更新用户状态

Facebook更新用户状态

安装了 Facebook 应用程序的 Facebook SDK iOS 登录

脸书更新上的评论和喜欢