18

Estoy utilizando los marcos incorporados de iOS para conectarme. Después de pedir permisos "publish_stream", FB devuelve un error:"La aplicación debe solicitar un permiso de lectura básico en el momento de la instalación"

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.} 

lo que está pasando aquí? Mostrar dos ventanas emergentes de permiso de usuario es una experiencia de usuario menos que ideal.

Respuesta

17

La primera vez, debe pedir permiso de lectura. No puede autenticar al usuario inicialmente con ningún tipo de permiso de publicación/escritura. Lo que debes hacer después de eso es, cuando tenga sentido en tu aplicación, solicitar el permiso publish_stream. Definitivamente no haga el permiso inicial y luego solicite de inmediato el permiso publish_stream.

Consulte esta nota en https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-3.0-to-3.1/, sección "Pedir lectura & Escribir permisos por separado". Aunque esto se aplica al Facebook SDK para iOS, es una extensión del mismo requisito en el marco integrado.

+0

estoy pidiendo @ "user_about_me" y todavía tiene este error. ¿Qué pasa? – Stas

+0

¿Está solicitando solo user_about_me cuando obtiene este error? Además, si puede proporcionar el código que está utilizando, eso lo ayudará. –

+0

gracias, el problema ya está solucionado. Hubo algunos rezagos en Facebook – Stas

5

me gustaría añadir que hay una advertencia adicional en la documentación de 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. 

De no hacerlo, conduce al mismo error.

4

En el último SDK (v3.5) también debe pasar @ "basic_info" en la matriz de permisos. Solía ​​ser implícito, pero ya no. Si no lo hace, obtendrá el "La aplicación debe solicitar un permiso de lectura básica durante la instalación" mensaje de

[FBSession openActiveSessionWithReadPermissions:@[@"email", @"basic_info"] 
           allowLoginUI:YES 
          completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { 
           [self sessionStateChanged:session state:state error:error]; 
          }]; 

A partir de los documentos de método:

readPermissions - An array of strings representing the read permissions to request during the authentication flow. The basic_info permission must be explicitly requested at first login, and is no longer inferred, (subject to an active migration.) It is not allowed to pass publish permissions to this method.

Cuestiones relacionadas