Envía mensajes privados a amigos

Respuestas:

74

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 facebook

function 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

Somnath Muluk
fuente
3
Esta solución ha estado ahí por un tiempo. No resuelve completamente el problema, ya que debe usar la ventana emergente de Facebook y solo puede completar una sola persona (en este punto, rastree el error aquí ). Una solución completa te permite usar la API estándar para enviar un mensaje como quieras, aunque parece que Facebook puede haber eliminado esto para siempre.
Scott
2
@Somnath, ¡gracias por publicar la solución! ¿Sabe si hay una forma de omitir la ventana de escritura del mensaje y simplemente enviar el mensaje directamente?
CyberJunkie
2
@CyberJunkie: Creo que Facebook no proporciona esa funcionalidad de omisión. El usuario debe hacer clic en el botón Enviar mensaje. De lo contrario, su bandeja de entrada estará llena de anuncios.
Somnath Muluk
@Somnath: Probé su solución y funciona, pero ¿hay alguna manera de completar el mensaje en la ventana emergente con mensajes personalizados?
VishwaKumar
@VishwaKumar: ¿Quiere decir que el cuadro de mensaje debe llenarse con un mensaje personalizado cuando se abre?
Somnath Muluk
9

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.

zombat
fuente
Mi Google-fu me está fallando. ¿Tienes enlaces sobre cómo hacer esto?
Randell
9

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

#if authenticated
https://graph.facebook.com/me/friends
http://developers.facebook.com/docs/reference/api/user/

Publicar en el dominio público

http://developers.facebook.com/docs/reference/api/status/

Recibir mensajes enviados a ese usuario (si se le da permiso)

http://developers.facebook.com/docs/reference/api/message/
PepitoCricket
fuente
: Ahora podemos enviar un mensaje privado ahora. He dado respuesta.
Somnath Muluk
8

Puede usar la API de chat de Facebook para enviar mensajes privados, aquí hay un ejemplo en Ruby usando xmpp4r_facebookgem:

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
Dalibor Nasevic
fuente
la publicación del blog sobre esto - dalibornasevic.com/posts/…
Dmitry Khryukin
¿tienes un código similar en php para enviar mensajes privados?
Snehal S
3
esto está obsoleto desde v2.0 después del 1 de mayo de 2015
Daniel Cukier
7

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.

Scott
fuente
6

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.

Anurag
fuente
2

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 ...

apueee
fuente
¿puedes explicar más sobre esto?
Totty.js
@Totty, ¿puedes mostrar tu realización? Lo necesito mucho para mi aplicación iOS.
Alex
0

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.

Nishchal Gautam
fuente