Parse y permissions adicionales de Facebook (iOS)

Hay dos methods de Parse para volver a autorizar a un usuario de Facebook (para get permissions adicionales) en Parse (para iOS):

  • reauthorizeUser:withPublishPermissions:audience:block:
  • reauthorizeUser:withPublishPermissions:audience:target:selector:

Desafortunadamente, estos dos methods son para publishPermissions . Estoy confundido, porque parece que no hay manera de agregar permissions de lectura adicionales (es decir, Permisos de Perfil Extendido) después del inicio de session inicial.

Facebook aconseja que, al hacer un inicio de session general (es decir, en la apertura de la aplicación), solo solicite permissions básicos y luego solicite permissions extendidos según sea necesario, para no asustar al usuario.

Entonces, con Parse y Facebook para iOS, ¿esto significa que necesitamos pedir todos los permissions de lectura que posiblemente podamos necesitar en el inicio de session?

En general, parece que la documentation y el marco de Parse parecen carecer de muchas de las instrucciones de Facebook para iniciar session en varios escenarios. Estamos dirigidos a ver el SDK de Facebook, pero todo parece aplicarse a FBSession, y no está claro qué methods son reemplazados por Parse y cuáles son necesarios además de Parse.

Yo, por ejemplo, tengo una aplicación donde el usuario puede iniciar session en Parse a través de FB en el inicio de la aplicación, pero no tiene que hacerlo. Si inician session, solo se les solicitan los permissions básicos, según lo aconsejado por FB. Entonces, si el usuario intenta realizar ciertas acciones, se les solicita los permissions para esa acción en particular. Tengo permissions de lectura adicionales que deben concederse para el perfil extendido, así como public_actions.

¿Alguien puede darme alguna dirección en este caso, o señalarme también un ejemplo muy completo y actualizado? El código de ejemplo Scratchtious de Parse FB me pareció prometedor al principio, pero está severamente desactualizado.

¡Gracias!

    Al parecer, hay más de una forma de hacerlo. El más fácil que encontré usando Parse para Android fue así:

      Collection<String> publishPermissions = Arrays.asList("publish_actions"); ParseFacebookUtils.linkWithPublishPermissionsInBackground(user, myActivityOrFragment, publishPermissions, new SaveCallback() {...}); 

    Lo que significa que después de iniciar session, debe llamar a linkWithPublishPermissionsInBackground con su reference de usuario y la nueva list de permissions. Se abrirá una nueva window de Facebook solicitando ese permiso y vinculará el resultado a su usuario.

    Este código lo probé y funciona. Pero parece que Parse no es tan inteligente, algunas cosas lo hacen automáticamente y otras no. Entonces, después de eso, necesitas llamar a algo así:

      ParseFacebookUtilities.linkInBackground(ParseUser, AccessToken) 

    Para savelo realmente al usuario en el server, de lo contrario, funcionaría solo mientras la aplicación se esté ejecutando.