page example developers ios facebook-graph-api permissions authorization facebook-oauth

ios - example - facebook permissions



"La aplicación debe solicitar un permiso de lectura básico en el momento de la instalación" (3)

Estoy usando los marcos incorporados de iOS para conectar. Después de solicitar los permisos de "publish_stream" , FB devuelve un error:

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

¿Que esta pasando aqui? Mostrar dos ventanas emergentes de permiso de usuario es una experiencia de usuario menos que ideal.


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, recibirá el mensaje "La aplicación debe solicitar un permiso de lectura básico en el momento de la instalación"

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

De la documentación del método:

readPermissions: un conjunto de cadenas que representan los permisos de lectura que se deben solicitar durante el flujo de autenticación. El permiso basic_info se debe solicitar explícitamente en el primer inicio de sesión y ya no se infiere (sujeto a una migración activa). No está permitido pasar permisos de publicación a este método.


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

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


Me gustaría agregar que hay una advertencia adicional en los documentos 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.

El no hacer esto lleva al mismo error.