将私信发送给朋友

时间:2010-04-04 12:59:24

标签: facebook facebook-graph-api fb.ui facebook-messages facebook-friends

我需要通过Facebook连接用户的信息并向他的所有朋友发送私信。有可能吗?

9 个答案:

答案 0 :(得分:74)

现在可以通过api发送私信。

触发此事件以发送消息(应在之前完成facebook对象的初始化)。

facebook的

to:user id

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 '

    });
}

属性

  • APP_ID
    您的应用程序的标识符。必需,但自动指定 大多数SDK都有。

  • REDIRECT_URI
    用户单击“发送”或“取消”后重定向到的URL 对话框上的按钮。必需,但大多数都是自动指定的 软件开发工具包。

  • 显示
    用于呈现对话框的显示模式。这是自动的 由大多数SDK指定。


  • 要将消息发送到的用户标识或用户名。一旦对话 用户可以指定其他用户,Facebook群组和 要将消息发送到的电子邮件地址。将内容发送到 Facebook小组将把它发布到小组的墙上。

  • 链路
    (必填)发送消息的链接。

  • 图片
    默认情况下,将从指定的链接中获取图片。网址 要包含在邮件中的图片。图片将会显示出来 在链接旁边。

  • 名 默认情况下,将从指定的链接中获取标题。的名字 链接,即用户将单击的显示文本。

  • 描述
    默认情况下,将从指定的链接中获取描述。 描述性文字显示在链接下方。

查看更多here

@VishwaKumar:

要发送包含自定义文字的邮件,您必须添加“' message'参数FB.ui,但我认为此功能已弃用。您无法再预先填写邮件。虽然尝试一次。

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

请参阅此链接:http://fbdevwiki.com/wiki/FB.ui

答案 1 :(得分:9)

不,这是不可能的。为了让您向Facebook用户发送任何类型的消息,您需要获得该用户的许可才能这样做。

如果有人使用Facebook Connect登录您的网站,他们明确同意与您的网站分享他们的Facebook数据,然后您就可以通过正常渠道向该人发送消息。您还可以获取他们的朋友列表。但是,您无法向朋友发送消息。

答案 2 :(得分:9)

现在这是不可能的,但有一个解决方法。您可以在公共领域与用户互动,并要求他们向您发送私信,但您无法发回私信,只能发送私信。当然,这完全取决于用户是否为您提供了正确的权限。

如果您已经允许访问某个人的朋友,那么理论上可以在该用户墙上发布每个朋友的引用,要求他们公开与您互动,然后可能私下向您发送消息。

结交朋友

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

在公共领域发布

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

获取发送给该用户的消息(如果给予权限)

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

答案 3 :(得分:8)

您可以使用Facebook Chat API发送私信,以下是使用xmpp4r_facebook gem的Ruby中的示例:

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

答案 4 :(得分:7)

一种解决方法,虽然不是很好,但是使用新的@ facebook.com电子邮件地址。这有一些缺点:

1)并非所有人(截至此帖子)都在其帐户中启用了新消息应用程序。

2)并非每个人都会在他们的消息应用中设置他们的@ facebook.com电子邮件。

3)不是每个人都会选择他们的用户名(如果他们甚至有一个facebook用户名)作为他们的电子邮件地址。

答案 5 :(得分:6)

你做不到。 Facebook API具有 read_mailbox 但没有write_mailbox扩展权限。我猜这是为了防止垃圾邮件应用程序充斥朋友的收件箱。

答案 6 :(得分:2)

对于移动应用程序,我通过在对话框视图中注入javascript来做一个解决方案。我的ios应用程序中有一个隐藏的Web视图。加载fb消息发送对话框api ..然后我注入一些javascript来设置“to”和“message”字段并提交表单..所以最终用户不需要做任何事情。邮件无声地发送到Facebook收件箱......

答案 7 :(得分:0)

这没有任何图形api,你需要使用facebook xmpp chat api发送消息,好消息是:我已经制作了一个易于使用的php类,调用函数和消息将是发送,它的开源,检查出来:facebook message api php描述说它是一个封闭的源,但后来它是开源的,看到第一个注释,你可以从github克隆。它现在是一个开源的。

答案 8 :(得分:0)

这个帖子说你不能在facebook上向一群朋友发送私信,但我发现了https://developers.facebook.com/docs/sharing/reference/send-dialog