90

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

4

9 回答 9

74

现在可以通过 api 发送私人消息。

触发此事件以发送消息(应在之前完成 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 会自动指定。

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

  • to
    向其发送消息的用户 ID 或用户名。对话框出现后,用户可以指定要向其发送消息的其他用户、Facebook 群组和电子邮件地址。将内容发送到 Facebook 群组会将其发布到群组的墙上。

  • 链接
    (必需)要在消息中发送的链接。

  • 图片
    默认情况下,将从指定的链接获取图片。要包含在消息中的图片的 URL。图片将显示在链接旁边。

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

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

在这里查看更多

@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

于 2012-02-23T12:50:05.630 回答
9

您可以使用 Facebook 聊天 API 发送私人消息,以下是 Ruby 中使用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
于 2012-07-30T07:06:46.410 回答
9

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

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

于 2010-04-09T04:53:32.897 回答
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/
于 2011-03-16T21:20:52.033 回答
7

一种解决方法(虽然不是很好)是使用新的@facebook.com 电子邮件地址。这样做有几个缺点:

1) 并非每个人(截至本文发布时)都在其帐户中启用了新消息应用程序。

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

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

于 2011-06-13T15:06:32.290 回答
6

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

于 2010-07-21T16:19:29.947 回答
2

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

于 2012-12-04T07:55:47.403 回答
1

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

于 2017-11-01T15:44:51.873 回答
0

没有graph api,你需要使用facebook xmpp chat api来发送消息,好消息是:我做了一个太容易使用的php类,调用一个函数就会发送消息,它开源,检查一下:facebook message api php描述说它是一个封闭源,但后来它是开源的,见第一条评论,你可以从 github 克隆。现在是开源的。

于 2014-02-04T18:36:45.557 回答