发送私信给朋友


Answers:


74

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

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

to:user Facebook的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会自动指定此设置。

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

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

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

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

  • 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


3
这个解决方案已经存在了一段时间。它不能完全解决问题,因为您必须使用Facebook的弹出窗口,并且只能填充一个人(此时,请在此处跟踪bug )。完整的解决方案使您可以根据需要使用标准API发送消息,尽管Facebook似乎已将其永久删除。
斯科特

2
@Somnath,感谢您发布解决方案!您知道是否有一种方法可以绕过写消息窗口而直接发送消息吗?
Cyber​​Junkie 2012年

2
@Cyber​​Junkie:我认为facebook不提供这种绕过功能。用户必须单击发送消息按钮。否则,您的收件箱将充满广告。
Somnath Muluk

@Somnath:我尝试了您的解决方案,它可以工作,但是有没有办法用自定义消息填充弹出窗口中的Message?
VishwaKumar

@VishwaKumar:您的意思是说在打开消息框时,它应该用自定义消息填充吗?
Somnath Muluk

9

不,这是不可能的。为了使您能够向Facebook用户发送任何形式的消息,您都需要该用户的许可。

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


我的Google-fu使我失望。获得了有关如何执行此操作的链接?
兰德尔

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/

:现在我们可以发送私人消息。我已经给出了答案。
Somnath Muluk

8

您可以使用Facebook Chat 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


您在php中有类似的代码可以发送私人消息吗?
Snehal S 2014年

3
自2015
Daniel Cukier

7

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

1)并非每个人(在此发布中)在其帐户中启用了新消息应用程序。

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

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


6

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


2

对于移动应用程序,我通过在对话框视图中注入javascript来实现了解决方案。我的ios应用程序中有一个隐藏的Web视图。加载fb消息发送对话框api ..然后我注入一些javascript来设置“ to”和“ message”字段并提交表单。因此最终用户无需执行任何操作。消息已悄悄发送到Facebook收件箱...


您能对此做更多解释吗?
Totty.js 2013年

@Totty你能证明你的实现吗?我的iOS应用程序非常需要它。
Alex

0

没有任何图形API,您需要使用facebook xmpp chat api发送消息,好消息是:我制作了一个php类,该类太容易使用了,调用一个函数,消息将被发送,其开源,请查看:facebook message api php的描述说它是一个封闭的源代码,但是稍后将其设为开放源代码,请参阅第一个评论,您可以从github克隆。现在是开源的。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.