ios objective-c facebook facebook-ios-sdk facebook-sdk-4.0

ios - FBSDKLoginManager logInWithReadPermissions?



objective-c facebook (4)

Como he visto, usted codifica que está intentando usar los permisos " user_likes ", " user_birthday ", " public_profile " y " publish_actions ".

Desde el 1 de mayo de 2015, Facebook solo ha habilitado " public_profile ", "email" y " user_friends " están disponibles sin el proceso de aprobación.

Para " user_likes ", " user_birthday " y " publish_actions " necesitas obtener la aprobación del facebook .

Para el proceso de revisión puede obtener ayuda de la Revisión de Facebook .

Estoy usando FBSDKLoginButton para permitir que el usuario inicie sesión usando Facebook y FBSDKLoginButton.readPermissions = @[@"public_profile",@"email",@"user_likes",@"email",@"user_birthday"];

para solicitar permisos, pero necesito un permiso más que es publish_actions Debería usar FBSDKLoginManager

con

logInWithReadPermissions:@[@"public_profile",@"user_likes",@"user_birthday"] logInWithPublishPermissions:@[@"publish_actions"]

pero esto por alguna razón afecta mi permiso "falta parte de mi permiso ver imagen

Código:-

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; [login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { // Process error } else if (result.isCancelled) { // Handle cancellations } else { // If you ask for multiple permissions at once, you // should check if specific permissions missing if ([result.grantedPermissions containsObject:@"publish_actions"]) { // Do work } } }]; [login logInWithReadPermissions:@[@"public_profile",@"",@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { // Process error } else if (result.isCancelled) { // Handle cancellations } else { // If you ask for multiple permissions at once, you // should check if specific permissions missing if ([result.grantedPermissions containsObject:@"email"]) { // Do work } } }];

Resultado:-

** ¿Lleva mucho tiempo redirigir al usuario a la vista de permisos? y no todos los permisos aparecen para el usuario **

Nota: Sé que esta advertencia significa que debo enviar mi aplicación para revisar, pero no es lo que estoy preguntando ahora.

Actualizar

Cuando probé la solución "Dheeraj Singh", pero en este caso, el usuario será redirigido dos veces a Facebook por primera vez para obtener publish_action y luego para recibir el correo electrónico y el permiso de cumpleaños, lo cual es malo.


El inicio de sesión de Facebook proporciona el acceso de la aplicación al perfil público, la lista de amigos y la dirección de correo electrónico de una persona. Estos tres permisos no requieren revisión. En su lugar, los usuarios de su aplicación elegirán si desean otorgar acceso a esta información.

Para que su aplicación pueda acceder a elementos adicionales del perfil de Facebook de una persona (permisos de lectura) o para publicar contenido en Facebook en su nombre (permisos de escritura), deberá enviarlo para su revisión.

Consulte: https://developers.facebook.com/docs/apps/review#submitlogin

Actualizado :

Las aplicaciones deben separar la solicitud de permisos de lectura y publicación.

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; [login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { // Process error } else if (result.isCancelled) { // Handle cancellations } else { // If you ask for multiple permissions at once, you // should check if specific permissions missing if ([result.grantedPermissions containsObject:@"publish_actions"]) { // Do work [login logInWithReadPermissions:@[@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { // Process error } else if (result.isCancelled) { // Handle cancellations } else { // If you ask for multiple permissions at once, you // should check if specific permissions missing if ([result.grantedPermissions containsObject:@"user_birthday"]) { // Do work NSLog(@"Permission 2: %@",result.grantedPermissions); } } }]; } } }];

No necesita public_profile en el permiso de lectura, ya que si se le otorga el permiso para publish_actions, también obtiene el permiso para public_profile.


También tengo el mismo problema con el permiso user_posts durante dos semanas, pero después de algunas búsquedas encontré la solución para esto, si aún tienes este problema, sigue estos pasos

  1. Vaya a http://developers.facebook.com e inicie sesión en su cuenta de desarrollador.
  2. Selecciona tu aplicación y ve a la sección de Roles.
  3. Añadir un probador en la sección de probadores.
  4. Luego, vuelva a instalar la aplicación e inicie sesión con esa cuenta de probador.
  5. Ahora intenta obtener los permisos necesarios del probador y el verificador verá toda la lista de permisos.

var login = FBSDKLoginManager() @IBAction func fbBtnPressed(_ sender: AnyObject) { login.logIn(withReadPermissions: ["email"], from: self) { (FBSDKLoginManagerLoginResult, Error) in if Error != nil { print("O Login via Facebook Falhou. Erro: /(Error)") } else { let accessToken = FBSDKAccessToken.current().tokenString self.gotoScreen() //Function for screen after login succesfull print("Acesso concedido ao Facebook. /(accessToken)") } } }