Facebook iOS 3.1 sdk inicio de sesión con permisos de publicación devoluciones de llamada

Estoy teniendo problemas para iniciar sesión con permisos de publicación en facebook 3.1 ios sdk.

Mi aplicación tiene un botón para compartir un video, y cuando el usuario haga clic en él, quiero agregar el permiso básico + de publicación. Según tengo entendido, tengo que hacer dos llamadas ...

openActiveSessionWithReadPermissions, y entoncesreauthorizeWithPublishPermissions

Aquí está el código que estoy usando ahora:

//Opens a Facebook session and optionally shows the login UX.
- (void)openSessionForReadPermissions
{
    [FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session,
       FBSessionState state, NSError *error) {

         //this is called even from the reauthorizeWithPublishPermissions
         if (state == FBSessionStateOpen && !error)
         {
             [self openSessionForPublishPermissions];
         }
         else if (state == FBSessionStateClosedLoginFailed)
         {
             [FBSession.activeSession closeAndClearTokenInformation];

             [[NSNotificationCenter defaultCenter] postNotificationName:FBLoginErrorNotification object:session];
         }
     }];
}

-(void)openSessionForPublishPermissions
{    
    NSArray* permissions = [NSArray arrayWithObject:@"publish_stream"];

    [[FBSession activeSession] reauthorizeWithPublishPermissions:permissions
                                                 defaultAudience:FBSessionDefaultAudienceFriends
                                               completionHandler:
     ^(FBSession *session, NSError *error)
     {
         if (!error)
         {
             [[NSNotificationCenter defaultCenter]
              postNotificationName:FBLoginSuccessNotification
              object:session];
         }
         else
         {
             [[NSNotificationCenter defaultCenter]
              postNotificationName:FBLoginErrorNotification
              object:session];
         }
     }];
}

Veo que el bloqueo en el openSessionForReadPermissions se llama dos veces (una vez con FBSessionStateOpen y una vez con FBSessionStateOpenTpenenTxtendido de la llamada openSessionForPublishPermissions), y obtengo un Error ReauthorizeFailedReasonUererCancelled cuando intenté iniciar sesión en la aplicación (en el cuadro de diálogo).

¿Cuál es la forma correcta de implementar este inicio de sesión? La aplicación no requiere el inicio de sesión de Facebook, a excepción de esta característica, por lo que el proceso de inicio de sesión debe estar en el mismo botón.

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta