tienes - Aplicaciones de Facebook: permisos adicionales
quitar permisos facebook android (2)
Tengo una aplicación de Facebook que funciona y que la mayoría de los usuarios usarán solo una vez. Al iniciarse en el flujo de trabajo de Facebook, los usuarios indican si desean que se escriba o no su muro. Basado en eso, o solicito el permiso publish_stream o no.
Más tarde, un pequeño porcentaje de usuarios volverá y utilizará la aplicación nuevamente. Algunas de las personas que anteriormente no querían escribir en el muro (y por lo tanto yo no solicité publish_stream) ahora quieren escribir en su muro.
¿Cómo solicito un permiso adicional después de que el usuario ya haya autorizado la aplicación?
Del mismo modo, ¿cómo puedo consultar a un usuario para que enumere qué permisos ya han otorgado?
¡Estaba viendo esto el otro día! Si lee a través de reference , hay varias formas diferentes de mostrar un pequeño cuadro emergente para solicitar permisos adicionales.
No estoy seguro de cómo funciona esto con una aplicación de Facebook, pero sé en un sitio web que usa Facebook Connect, si intentas solicitar permisos que el usuario ya ha aceptado, entonces la página automáticamente redirige a la redirect_url que estableces.
Es tan simple como agregar el nuevo permiso a un nuevo fb:login-button
:
<fb:login-button scope="publish_stream">
Let me write on your wall!
</fb:login-button>
Así que, por ejemplo, tiene lo anterior oculto en un DIV y si el usuario marca una casilla de verificación, mostrará el DIV y solicitará el nuevo permiso.
Un buen ejemplo en vivo de esto es en la consola de prueba de Facebook :
- Haga clic en iniciar sesión para "agregar" la aplicación
- Luego haga clic en
examples
- En
fb.api
eligedoes-like
Ahora puede ver que incluso después de estar * conectado a la aplicación (aplicación de consola de prueba), ¡ puede tener otro botón de inicio de sesión para avisarle al usuario!
EDITAR:
Para verificar si el usuario ha otorgado un permiso a su aplicación, solo use esta FQL:
SELECT read_stream,offline_access FROM permissions WHERE uid=me()
Esto devolvería algo así como:
[
{
"read_stream": 1,
"offline_access": 0
}
]
Para probarlo, solo use la consola de prueba publicada antes.
EDICION 2:
Para construir el enlace usted mismo sin XFBML o Javascript, solo necesita agregar el parámetro scope
con las permanentes adicionales ( reference ):
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=publish_stream
O si estás usando el PHP-SDK :
$loginUrl = $facebook->getLoginUrl(array(
"scope" => "publish_stream"
));