阅读 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 状态更新中标记他们的朋友?