facebook - plugin - open graph wordpress
Permitir que el usuario especifique destinatarios dentro del Diálogo de feed (1)
Actualmente, nuestra aplicación se publica en los muros de amigos de los usuarios a través de Graph API. Sin embargo, Facebook está desaprobando esta funcionalidad, por lo que estamos migrando al diálogo de feed según las recomendaciones de Facebook (consulte la sección del 6 de febrero de 2013 en https://developers.facebook.com/roadmap/ ).
Ahora, sabemos que podemos especificar el destinatario como parte de la llamada SDK de Javascript (nota FB.init () se llama en otro lugar anteriormente en la página):
<p><a onclick="launchFeedDialog(); return false">Testing the Feed Dialog</a></p>
<script>
function launchFeedDialog() {
// calling the API ...
var obj = {
method: ''feed'',
to: ''RECIPIENT NAME'', // Can specify recipient here
link: ''http://example.com'',
name: ''Test post'',
description: ''Test description''
};
FB.ui(obj);
}
</script>
Sin embargo, no parece que el usuario pueda modificar el destinatario en el diálogo iniciado. Una captura de pantalla de lo que quiero decir está en http://i.imgur.com/oLPTO.png .
¿Hay alguna forma de invocar el diálogo de alimentación para que el usuario pueda cambiar / agregar destinatarios, como en el cuadro de diálogo Enviar?
El flujo que estamos tratando de implementar (y la forma en que actualmente es) es:
- El usuario hace clic en un botón para abrir el cuadro de diálogo Feed
- El usuario rellena el cuadro de diálogo Feed (incluido el destinatario) y lo envía
En este momento, estamos atrapados con este flujo incómodo:
- El usuario completa un control personalizado que especifica el destinatario
- El usuario hace clic en un botón para abrir el cuadro de diálogo Feed
- El usuario rellena el cuadro de diálogo Feed y lo envía
OK, encontramos una solución. La idea general:
- Mostrar el cuadro de diálogo de alimentación en línea como un iframe (especificando
display=iframe
) - Crea tu propio control personalizado para seleccionar un nombre de usuario o id de Facebook del destinatario
- Recargue el iframe de forma asíncrona al seleccionar un destinatario o onblur, etc.
Algunas advertencias / razonamiento para arriba:
- No puede usar el SDK de JS porque lanzará la versión de marco flotante del cuadro de diálogo de alimentación como un lightbox modal (en lugar de estar en línea en el flujo de su página)
- Tendrá que implementar una página de redireccionamiento que realice el procesamiento posterior, como actualizar el estado de la ventana principal, registrar los resultados, etc.
- Para (2), el control personalizado puede ser tan simple como un campo de entrada de texto, pero es probable que desee al menos algún tipo de autocompletar. En realidad, esto no es demasiado complicado, ya que usted toma la lista de amigos de su usuario con la llamada https://graph.facebook.com/me/friends Graph API.
Aquí hay un ejemplo básico usando una entrada de texto simple:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
<div>
Recipient''s FB username:
<input type="text" id="fb-recipient" placeholder="Recipient''s FB username"></input>
<input type="submit" id="fb-recipient-submit" value="Pick" />
</div>
<iframe id="fb-feed-dialog" width="586" height="330" frameborder="0" allowfullscreen></iframe>
<script>
$(''#fb-recipient-submit'').click(function(e){
e.preventDefault();
var feedUrl = ''https://www.facebook.com/dialog/feed?'';
feedUrl += ''display=iframe'';
feedUrl += ''&app_id='' + ''YOUR_APP_ID'';
feedUrl += ''&access_token='' + ''ACCESS_TOKEN'';
feedUrl += ''&link='' + ''SHARE_LINK'';
feedUrl += ''&redirect_uri='' + ''REDIRECT_URI'';
feedUrl += ''&to='' + $(''#fb-recipient'').val();
$(''#fb-feed-dialog'').attr( ''src'', feedUrl );
});
</script>
</body>
</html>
Puede encontrar una captura de pantalla de una solución un poco más carnosa en: http://i.imgur.com/0jTM391.png