我使用内置的iOS框架来连接。请求"publish_stream"权限后,FB返回错误:
Error Domain=com.apple.accounts Code=7 "The Facebook server could not fulfill this access request: The app must ask for a basic read permission at install time." UserInfo=0x145ad6a0 {NSLocalizedDescription=The Facebook server could not fulfill this access request: The app must ask for a basic read permission at install time.}这里发生什么事情?显示两个用户权限弹出窗口是不太理想的用户体验。
发布于 2012-09-26 11:02:51
第一次,您必须请求读取权限。您最初不能使用任何类型的发布/写入权限对用户进行身份验证。在此之后,你应该做的是,在你的应用程序中有意义的地方,请求publish_stream权限。绝对不要做初始权限,然后立即请求publish_stream权限。
请参阅https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-3.0-to-3.1/中“分别要求读写权限”一节中的此说明。即使这适用于iOS的Facebook SDK,它也是内置框架中相同需求的扩展。
发布于 2012-12-12 07:23:25
我想补充的是,在Facebook文档中还有一个额外的警告:
// if a user has *never* logged into your app, you MUST include one of
// "email", "user_location", or "user_birthday". Other read
// permissions can also be included here.如果不这样做,将导致相同的错误。
发布于 2013-06-28 22:45:06
在最新的SDK (v3.5)中,您还需要在权限数组中传入@"basic_info“。它过去是隐含的,但现在不是了。如果您不这样做,您将收到“应用程序必须在安装时请求基本读取权限”消息
[FBSession openActiveSessionWithReadPermissions:@[@"email", @"basic_info"]
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];在方法文档中:
readPermissions -表示身份验证流期间请求的读取权限的字符串数组。必须在首次登录时显式请求basic_info权限,并且不再推断该权限(取决于活动迁移)。不允许将发布权限传递给此方法。
https://stackoverflow.com/questions/12443246
复制相似问题