Send private messages to friends
Asked Answered
F

9

90

I need to get via Facebook connect user's info and send a private message to all of his friends. Is it possible?

Fowkes answered 4/4, 2010 at 12:59 Comment(1)
I realize this doesn't solve the OP's question, but those looking for a way to reply to private messages might find this useful: #9598869Mucus
E
74

Sending private message through api is now possible.

Fire this event for sending message(initialization of facebook object should be done before).

to:user id of 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 '

    });
}

Properties

  • app_id
    Your application's identifier. Required, but automatically specified by most SDKs.

  • redirect_uri
    The URL to redirect to after the user clicks the Send or Cancel buttons on the dialog. Required, but automatically specified by most SDKs.

  • display
    The display mode in which to render the dialog. This is automatically specified by most SDKs.

  • to
    A user ID or username to which to send the message. Once the dialog comes up, the user can specify additional users, Facebook groups, and email addresses to which to send the message. Sending content to a Facebook group will post it to the group's wall.

  • link
    (required) The link to send in the message.

  • picture
    By default a picture will be taken from the link specified. The URL of a picture to include in the message. The picture will be shown next to the link.

  • name By default a title will be taken from the link specified. The name of the link, i.e. the text to display that the user will click on.

  • description
    By default a description will be taken from the link specified. Descriptive text to show below the link.

See more here

@VishwaKumar:

For sending message with custom text, you have to add 'message' parameter to FB.ui, but I think this feature is deprecated. You can't pre-fill the message anymore. Though try once.

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

See this link: http://fbdevwiki.com/wiki/FB.ui

Extraditable answered 23/2, 2012 at 12:50 Comment(15)
This solution has been there a while. It does not completely solve the problem as you have to use Facebook's popup and can only populate a single person (at this point, track bug here). A full solution allows you to use the standard API to send a message however you want, though it seems that Facebook may have taken this away for good.Flaggy
@Somnath, thanks for posting the solution! Do you know if there is a way to bypass the write message window and just send the message directly?Composite
@CyberJunkie: I think facebook doesn't provide such bypassing functionality. User have to click send msg button. Other wise your inbox will be full of advertisements.Extraditable
@Somnath: I tried your solution and it works, But is there a way to populate the Message in the popup with custom messages?Vienna
@VishwaKumar: Do you mean message box should be filled with custom message when it is opened?Extraditable
I managed to get it to <b>send to more than one person</b>! You can make the value for 'to' a JSON array. I put an example up here: fbdevwiki.com/wiki/FB.ui#method:_.27send.27Plummer
Does anyone know if this works consistently for every facebook user ? I have a website where people can log in with their fb accounts. UserA is not a friend of userB. userA sends a message to userB. sometimes it works, sometimes the link gets stripped. sometimes it doesn't work... doesn't seem consistent :/Crumhorn
@SomnathMuluk have an objective-c answer for this?Dani
@Kyle: sorry, I don't know objective-C. You can ask one linked question to this or raise bounty for same question. You might get good answers.Extraditable
@SomnathMuluk do you know if i need special permission for app for this? does user need to install it?Equestrian
@confiq: I think there is no any requirement for any permissions... Just you need to have FB.init initialised for Javascript.Extraditable
hello somnath, as my requirement is to send the message by custom, I've created some custom functionality to get the list of friends & message,later I called u r function, but I was failed to send the message to the selected users..can u help meCapillary
@Nagendra: what did happened? Any error? For sending message with custom text, you have to add 'message' parameter to FB.ui, but I think this feature is Deprecated. :( You can't pre-fill the message anymore.Extraditable
@SomnathMuluk: I've added, but not displaying the message in the users message inbox, u can see here #16465619Capillary
@SomnathMuluk: It looks like you can't even set a "Name" or "Description" text anymore either. It gets pulled from the website automatically :(Bellows
C
9

No, this isn't possible. In order for you to send messages of any kind to a Facebook user, you need that user's permission to do so.

If someone logs into your site with Facebook Connect, they are explicitly agreeing to share their Facebook data with your site, and you will then be able to send that person a message through the normal channels. You would also be able to fetch their friend list. However, you can not send messages to the friends.

Cozenage answered 9/4, 2010 at 4:53 Comment(1)
My Google-fu is failing me. Got links on how to do this?Vassar
D
9

This is not possible now, but there is a work around. You can engage with the user in the public realm and ask them to send you private messages, but you can't send private messages back, only public ones. Of course, this all depends on if the user gives you the correct permissions.

If you have given permission to access a person's friends, you can then theoretically post on that users wall with references to each one of the friends, asking them to publicly interact with you and then potentially privately message you.

Get Friends

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

Post in the Public Domain

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

Get Messages sent to that user (if given permission)

http://developers.facebook.com/docs/reference/api/message/
Depress answered 16/3, 2011 at 21:20 Comment(1)
:Now we can send private message now. I have given answer.Extraditable
I
9

You can use Facebook Chat API to send private messages, here is an example in Ruby using 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
Intervene answered 30/7, 2012 at 7:6 Comment(3)
the blog post about this - dalibornasevic.com/posts/…Loiseloiter
do you have the similar code in php to send private message?Bernita
this is deprecated since v2.0 after May 1st 2015Shwa
F
7

One workaround, though not a great one, is to use the new @facebook.com email address. There are a few downsides to this:

1) Not everyone (as of this posting) has the new messages application enabled in their account.

2) Not everyone will have setup their @facebook.com email in their messages app.

3) Not everyone will choose their username (if they even have a facebook username) as their email address.

Flaggy answered 13/6, 2011 at 15:6 Comment(0)
A
6

You cannot. Facebook API has read_mailbox but no write_mailbox extended permission. I'm guessing this is done to prevent spammy apps from flooding friend's inboxes.

Ashien answered 21/7, 2010 at 16:19 Comment(0)
P
2

For mobile application i did a solution by injecting javascript in the dialog view. There is a hidden web view in my ios app. That load the fb message send dialog api .. then i inject some javascript to set the "to" and "message" field and submit the form.. So that end user need not to do anything. Message sent to facebook inbox silently...

Peru answered 4/12, 2012 at 7:55 Comment(2)
can you explain more about this?Glare
@Totty can you show your realization? I very need it for my iOS app.Munshi
P
1

This thread says you can't do send private messages to a group of friends on facebook but I found this https://developers.facebook.com/docs/sharing/reference/send-dialog

Pubilis answered 1/11, 2017 at 15:44 Comment(0)
S
0

There isn't any graph api for this, you need to use facebook xmpp chat api to send the message, good news is: I have made a php class which is too easy to use,call a function and message will be sent, its open source, check it out: facebook message api php the description says its a closed source but the it was made open source later, see the first comment, you can clone from github. It's a open source now.

Scoter answered 4/2, 2014 at 18:36 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.