Necesito obtener la información del usuario de la conexión de Facebook y enviar un mensaje privado a todos sus amigos. ¿Es posible?
89
Necesito obtener la información del usuario de la conexión de Facebook y enviar un mensaje privado a todos sus amigos. ¿Es posible?
Respuestas:
Ahora es posible enviar mensajes privados a través de la API.
Active este evento para enviar un mensaje (la inicialización del objeto de Facebook debe realizarse antes).
to:user
id de facebookfunction facebook_send_message(to) { FB.ui({ app_id:'xxxxxxxx', method: 'send', name: "sdfds jj jjjsdj j j ", link: 'https://apps.facebook.com/xxxxxxxaxsa', to:to, description:'sdf sdf sfddsfdd s d fsf s ' }); }
Propiedades
app_id Identificador de
tu aplicación. Requerido, pero especificado automáticamente por la mayoría de los SDK.
redirect_uri
La URL a la que se redireccionará después de que el usuario haga clic en los botones Enviar o Cancelar en el cuadro de diálogo. Requerido, pero especificado automáticamente por la mayoría de los SDK.
display
El modo de visualización en el que renderizar el diálogo. La mayoría de los SDK lo especifican automáticamente.
a
Un ID de usuario o nombre de usuario al que enviar el mensaje. Una vez que aparece el cuadro de diálogo, el usuario puede especificar usuarios adicionales, grupos de Facebook y direcciones de correo electrónico a los que enviar el mensaje. Enviar contenido a un grupo de Facebook lo publicará en el muro del grupo.
enlace
(obligatorio) El enlace para enviar el mensaje.
imagen
Por defecto, se tomará una imagen desde el enlace especificado. La URL de una imagen para incluir en el mensaje. La imagen se mostrará junto al enlace.
nombre Por defecto, se tomará un título del enlace especificado. El nombre del enlace, es decir, el texto que se mostrará en el que el usuario hará clic.
descripción
Por defecto, se tomará una descripción del enlace especificado. Texto descriptivo para mostrar debajo del enlace.
Ver más aquí
@VishwaKumar:
Para enviar mensajes con texto personalizado, debe agregar el parámetro 'mensaje' a
FB.ui
, pero creo que esta función está en desuso. Ya no puede precompletar el mensaje. Aunque intente una vez.FB.ui({ method: 'send', to: '1234', message: 'A request especially for one person.', data: 'tracking information for the user' });
Vea este enlace: http://fbdevwiki.com/wiki/FB.ui
fuente
No, esto no es posible. Para poder enviar mensajes de cualquier tipo a un usuario de Facebook, necesita el permiso de ese usuario para hacerlo.
Si alguien inicia sesión en su sitio con Facebook Connect, acepta explícitamente compartir sus datos de Facebook con su sitio, y luego podrá enviarle un mensaje a esa persona a través de los canales normales. También podrá buscar su lista de amigos. Sin embargo, no puede enviar mensajes a los amigos.
fuente
Esto no es posible ahora, pero hay una solución. Puede interactuar con el usuario en el ámbito público y pedirle que le envíe mensajes privados, pero no puede devolver mensajes privados, solo públicos. Por supuesto, todo esto depende de si el usuario le otorga los permisos correctos.
Si ha dado permiso para acceder a los amigos de una persona, entonces, teóricamente, puede publicar en el muro de ese usuario con referencias a cada uno de los amigos, pidiéndoles que interactúen públicamente con usted y luego potencialmente le envíe un mensaje privado.
Conseguir amigos
Publicar en el dominio público
Recibir mensajes enviados a ese usuario (si se le da permiso)
fuente
Puede usar la API de chat de Facebook para enviar mensajes privados, aquí hay un ejemplo en Ruby usando
xmpp4r_facebook
gem:sender_chat_id = "-#{sender_uid}@chat.facebook.com" receiver_chat_id = "-#{receiver_uid}@chat.facebook.com" message_body = "message body" message_subject = "message subject" jabber_message = Jabber::Message.new(receiver_chat_id, message_body) jabber_message.subject = message_subject client = Jabber::Client.new(Jabber::JID.new(sender_chat_id)) client.connect client.auth_sasl(Jabber::SASL::XFacebookPlatform.new(client, ENV.fetch('FACEBOOK_APP_ID'), facebook_auth.token, ENV.fetch('FACEBOOK_APP_SECRET')), nil) client.send(jabber_message) client.close
fuente
Una solución alternativa, aunque no excelente, es utilizar la nueva dirección de correo electrónico @ facebook.com. Esto tiene algunas desventajas:
1) No todos (a partir de esta publicación) tienen la aplicación de mensajes nuevos habilitada en su cuenta.
2) No todo el mundo habrá configurado su correo electrónico @ facebook.com en su aplicación de mensajes.
3) No todos elegirán su nombre de usuario (si es que tienen un nombre de usuario de Facebook) como su dirección de correo electrónico.
fuente
No se puede. La API de Facebook tiene read_mailbox pero no tiene permiso extendido write_mailbox. Supongo que esto se hace para evitar que las aplicaciones de spam inunden las bandejas de entrada de los amigos.
fuente
Para la aplicación móvil, hice una solución inyectando javascript en la vista de diálogo. Hay una vista web oculta en mi aplicación ios. Eso carga la api de diálogo de envío de mensaje de fb ... luego inyecto algo de javascript para configurar el campo "para" y "mensaje" y enviar el formulario .. Para que el usuario final no tenga que hacer nada. Mensaje enviado a la bandeja de entrada de Facebook silenciosamente ...
fuente
No hay ninguna API gráfica para esto, necesita usar la API de chat xmpp de Facebook para enviar el mensaje, la buena noticia es: he creado una clase php que es demasiado fácil de usar, llame a una función y se enviará un mensaje código abierto, compruébalo: mensaje de facebook api php la descripción dice que es un código cerrado, pero luego se hizo de código abierto, mira el primer comentario, puedes clonar desde github. Ahora es de código abierto.
fuente
Este hilo dice que no puede enviar mensajes privados a un grupo de amigos en Facebook, pero encontré este https://developers.facebook.com/docs/sharing/reference/send-dialog
fuente