84

Necesito obtener a través de Facebook para conectar la información del usuario y enviar un mensaje privado a todos sus amigos. ¿Es posible?Enviar mensajes privados a amigos

+1

Sé que esto no resuelve la pregunta de la OP, pero aquellos que buscan una manera de responder a los mensajes privados pueden encontrar esto útil: http://stackoverflow.com/questions/9598369/facebook-api-support-for-user-page-private-messages – Trevor

+6

Esto es spam, no quiere hostigar a las personas en su bandeja de entrada , ya son solicitados por demasiadas aplicaciones. –

Respuesta

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, están aceptando explícitamente compartir sus datos de Facebook con su sitio, y entonces podrán enviar esa persona un mensaje a través de los canales normales. También podría buscar su lista de amigos. Sin embargo, no puedes enviar mensajes a los amigos.

+0

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

4

No puede. La API de Facebook tiene read_mailbox pero no tiene permiso extendido de write_mailbox. Supongo que esto se hace para evitar que las aplicaciones fraudulentas inunden las bandejas de entrada de sus amigos.

9

Esto no es posible ahora, pero hay un problema. 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 otorgado permiso para acceder a los amigos de una persona, puede publicar en ese muro teóricamente con referencias a cada uno de los amigos, pidiéndoles que interactúen públicamente con usted y luego, potencialmente, le envíen un mensaje privado.

conseguir a 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/ 

Recibe mensajes enviados a ese usuario (permiso si se les da)

http://developers.facebook.com/docs/reference/api/message/ 
+0

: ahora podemos enviar mensajes privados ahora. He dado respuesta. –

7

Una solución, aunque no es un gran uno, es usar la nueva dirección de correo electrónico de @ facebook.com. Hay algunas desventajas en esto:

1) No todos (a partir de esta publicación) tienen habilitada la nueva aplicación de mensajes en sus cuentas.

2) No todos habrán 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.

74

Ahora es posible enviar un mensaje privado a través de una API.

Activa este evento para enviar el mensaje (la inicialización del objeto facebook se debe hacer 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 la aplicación. Obligatorio, pero se ha especificado automáticamente por la mayoría de los SDK.

  • redirect_uri
    La URL para redireccionar después el usuario hace clic en el Enviar o Cancelar botones en el diálogo. Obligatorio, pero especificado automáticamente por la mayoría de los SDK.

  • pantalla
    El modo de visualización en el que se muestra el cuadro de diálogo. Esto es automáticamente especificado por la mayoría de los SDK.

  • 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 las que enviar el mensaje. El envío de 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 del 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 es el enlace, es decir, el texto para 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 here

@VishwaKumar:

Para enviar el mensaje con el texto de encargo, hay que añadir el 'mensaje' parámetro para FB.ui, pero creo que esta característica está en desuso. Ya no puedes precompletar el mensaje. Aunque intenta 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

+3

Esta solución ha estado allí por un tiempo. No resuelve el problema por completo, ya que tiene que usar la ventana emergente de Facebook y solo puede poblar a una sola persona (en este punto, rastree la falla [aquí] (http://developers.facebook.com/bugs/314701778595814)). Una solución completa le permite usar la API estándar para enviar un mensaje de la forma que desee, aunque parece que Facebook puede haberse llevado esto para siempre. – Scott

+2

@Somnath, ¡gracias por publicar la solución! ¿Sabes si hay una forma de eludir la ventana de escribir mensaje y simplemente enviar el mensaje directamente? – CyberJunkie

+2

@CyberJunkie: Creo que Facebook no ofrece dicha funcionalidad de desvío. El usuario debe hacer clic en enviar el botón msg. De lo contrario, su bandeja de entrada estará llena de anuncios. –

8

Puede usar el chat de Facebook API para enviar mensajes privados, aquí es un ejemplo en Ruby utilizando xmpp4r_facebook joya:

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 
+0

la publicación del blog sobre esto - http://dalibornasevic.com/posts/35-how-to-send-private-messages-with-facebook-api –

+0

¿tiene el código similar en php para enviar un mensaje privado? –

+3

esto está en desuso desde v2 .0 después del 1 de mayo de 2015 –

2

Para la aplicación móvil Hice una solución al inyectar javascript en la vista de diálogo. Hay una vista web oculta en mi aplicación ios. Eso carga el mensaje fb enviar diálogo api ... entonces inyecto un javascript para establecer el campo "a" 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 en silencio ...

+0

¿Puedes explicarme más sobre esto? –

+0

@Totty ¿Puedes mostrar tu realización? Lo necesito para mi aplicación de iOS. – Alex

0

No hay ninguna API gráfica para esto, debe usar facebook xmpp chat api para enviar el mensaje, la buena noticia es: he hecho una clase php que es demasiado fácil para usar, llame a una función y se enviará un mensaje, es de código abierto, compruébelo: facebook message api php la descripción dice que es una fuente cerrada pero se convirtió en código abierto más adelante; consulte el primer comentario, puede clonar desde github. Es una fuente abierta ahora.

Cuestiones relacionadas