Envoyer des messages privés à des amis

Réponses:

74

L'envoi de messages privés via l'API est désormais possible.

Déclenchez cet événement pour l'envoi du message (l'initialisation de l'objet facebook doit être effectuée avant).

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 '

    });
}

Propriétés

  • app_id Identifiant de
    votre application. Obligatoire, mais automatiquement spécifié par la plupart des SDK.

  • redirect_uri
    L'URL vers laquelle rediriger après que l'utilisateur clique sur les boutons Envoyer ou Annuler de la boîte de dialogue. Obligatoire, mais automatiquement spécifié par la plupart des SDK.

  • display
    Le mode d'affichage dans lequel rendre la boîte de dialogue. Ceci est automatiquement spécifié par la plupart des SDK.

  • à
    Un ID utilisateur ou un nom d'utilisateur auquel envoyer le message. Une fois la boîte de dialogue ouverte, l'utilisateur peut spécifier des utilisateurs supplémentaires, des groupes Facebook et des adresses e-mail auxquels envoyer le message. L'envoi de contenu à un groupe Facebook le publiera sur le mur du groupe.

  • link
    (obligatoire) Le lien à envoyer dans le message.

  • image
    Par défaut, une image sera prise à partir du lien spécifié. L'URL d'une image à inclure dans le message. L'image sera affichée à côté du lien.

  • nom Par défaut, un titre sera tiré du lien spécifié. Le nom du lien, c'est-à-dire le texte à afficher sur lequel l'utilisateur cliquera.

  • description
    Par défaut, une description sera tirée du lien spécifié. Texte descriptif à afficher sous le lien.

En savoir plus ici

@VishwaKumar:

Pour envoyer un message avec un texte personnalisé, vous devez ajouter le paramètre 'message' à FB.ui, mais je pense que cette fonctionnalité est obsolète. Vous ne pouvez plus préremplir le message. Essayez une fois.

FB.ui({
  method: 'send',
  to: '1234',
  message: 'A request especially for one person.',
  data: 'tracking information for the user'
});

Voir ce lien: http://fbdevwiki.com/wiki/FB.ui

Somnath Muluk
la source
3
Cette solution existe depuis un certain temps. Cela ne résout pas complètement le problème car vous devez utiliser le popup de Facebook et ne pouvez peupler qu'une seule personne (à ce stade, suivez le bug ici ). Une solution complète vous permet d'utiliser l'API standard pour envoyer un message comme vous le souhaitez, bien qu'il semble que Facebook l'ait enlevé pour de bon.
Scott
2
@Somnath, merci d'avoir publié la solution! Savez-vous s'il existe un moyen de contourner la fenêtre d'écriture du message et d'envoyer simplement le message directement?
CyberJunkie
2
@CyberJunkie: Je pense que Facebook ne fournit pas une telle fonctionnalité de contournement. L'utilisateur doit cliquer sur le bouton d'envoi de msg. Sinon, votre boîte de réception sera pleine de publicités.
Somnath Muluk
@Somnath: J'ai essayé votre solution et cela fonctionne, mais y a-t-il un moyen de remplir le message dans la fenêtre contextuelle avec des messages personnalisés?
VishwaKumar
@VishwaKumar: Voulez-vous dire que la boîte de message doit être remplie avec un message personnalisé lorsqu'elle est ouverte?
Somnath Muluk
9

Non, ce n'est pas possible. Pour que vous puissiez envoyer des messages de tout type à un utilisateur Facebook, vous avez besoin de l'autorisation de cet utilisateur pour le faire.

Si les journaux de quelqu'un dans votre site avec Facebook Connect, ils sont d' accord explicitement de partager leurs données Facebook avec votre site, et vous serez alors en mesure d'envoyer cette personne un message par les voies normales. Vous pourrez également récupérer leur liste d'amis. Cependant, vous ne pouvez pas envoyer de messages aux amis.

zombat
la source
Mon Google-fu me fait défaut. Vous avez des liens sur la façon de procéder?
Randell
9

Ce n'est pas possible maintenant, mais il y a un contournement. Vous pouvez interagir avec l'utilisateur dans le domaine public et lui demander de vous envoyer des messages privés, mais vous ne pouvez pas renvoyer de messages privés, uniquement des messages publics. Bien sûr, tout dépend de si l'utilisateur vous donne les autorisations appropriées.

Si vous avez donné la permission d'accéder aux amis d'une personne, vous pouvez théoriquement publier sur ce mur d'utilisateurs avec des références à chacun des amis, en leur demandant d'interagir publiquement avec vous, puis éventuellement en privé.

Obtenez des amis

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

Publier dans le domaine public

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

Obtenir des messages envoyés à cet utilisateur (si l'autorisation est accordée)

http://developers.facebook.com/docs/reference/api/message/
Jiminy Cricket
la source
: Maintenant, nous pouvons envoyer un message privé maintenant. J'ai donné une réponse.
Somnath Muluk
8

Vous pouvez utiliser l'API Facebook Chat pour envoyer des messages privés, voici un exemple dans Ruby utilisant 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
la source
le billet de blog à ce sujet - dalibornasevic.com/posts/…
Dmitry Khryukin
avez-vous le code similaire en php pour envoyer un message privé?
Snehal S
3
ceci est obsolète depuis la v2.0 après le 1er mai 2015
Daniel Cukier
7

Une solution de contournement, mais pas excellente, consiste à utiliser la nouvelle adresse e-mail @ facebook.com. Il y a quelques inconvénients à cela:

1) Tout le monde (à partir de cette publication) n'a pas activé la nouvelle application de messagerie dans son compte.

2) Tout le monde n'aura pas configuré sa messagerie @ facebook.com dans son application de messagerie.

3) Tout le monde ne choisira pas son nom d'utilisateur (s'il a même un nom d'utilisateur Facebook) comme adresse e-mail.

Scott
la source
6

Vous ne pouvez pas. L'API Facebook a read_mailbox mais pas de permission étendue write_mailbox. Je suppose que cela est fait pour empêcher les applications de spam d'inonder les boîtes de réception d'amis.

Anurag
la source
2

Pour l'application mobile, j'ai fait une solution en injectant du javascript dans la fenêtre de dialogue. Il y a une vue Web masquée dans mon application iOS. Cela charge le message fb send dialog api .. puis j'injecte du javascript pour définir le champ "to" et "message" et soumet le formulaire .. Ainsi, l'utilisateur final n'a rien à faire. Message envoyé en silence à la boîte de réception Facebook ...

une personne
la source
pouvez-vous expliquer plus à ce sujet?
Totty.js
@Totty pouvez-vous montrer votre réalisation? J'en ai vraiment besoin pour mon application iOS.
Alex
0

Il n'y a pas d'API graphique pour cela, vous devez utiliser l'api de chat facebook xmpp pour envoyer le message, la bonne nouvelle est: j'ai créé une classe php qui est trop facile à utiliser, appelez une fonction et un message sera envoyé, c'est open source, vérifiez-le: message facebook api php la description dit que c'est une source fermée mais qu'il a été rendu open source plus tard, voir le premier commentaire, vous pouvez cloner à partir de github. C'est une source ouverte maintenant.

Nishchal Gautam
la source