我需要通过Facebook连接用户的信息并向他的所有朋友发送私人消息.可能吗?
现在可以通过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自动指定.
显示
用于呈现对话框的显示模式.这是由大多数SDK自动指定的.
to
要向其发送消息的用户标识或用户名.对话框出现后,用户可以指定要向其发送消息的其他用户,Facebook组和电子邮件地址.将内容发送到Facebook群组会将其发布到群组的墙上.
link
(必填)要在邮件中发送的链接.
picture
默认情况下,将从指定的链接中获取图片.要包含在邮件中的图片的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
不,这是不可能的.为了向Facebook用户发送任何类型的消息,您需要获得该用户的许可才能这样做.
如果有人使用Facebook Connect登录您的网站,他们明确同意与您的网站共享他们的Facebook数据,然后您就可以通过正常渠道向该人发送消息.您还可以获取他们的朋友列表.但是,您无法向朋友发送消息.
现在这是不可能的,但有一个解决方法.您可以在公共领域与用户互动,并要求他们向您发送私信,但您不能发回私信,只能发送私信.当然,这一切都取决于用户是否为您提供了正确的权限.
如果您已经允许访问某个人的朋友,那么理论上可以在该用户墙上发布每个朋友的引用,要求他们公开与您互动,然后可能私下向您发送消息.
得到朋友
#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/
您可以使用Facebook Chat API发送私人消息,这里是Ruby使用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
一种解决方法,虽然不是很好,但是使用新的@ facebook.com电子邮件地址.这有一些缺点:
1)并非所有人(截至此帖子)都在其帐户中启用了新邮件应用程序.
2)不是每个人都会在他们的消息应用程序中设置他们的@ facebook.com电子邮件.
3)不是每个人都会选择他们的用户名(如果他们甚至有一个facebook用户名)作为他们的电子邮件地址.
你不能.Facebook API具有read_mailbox但没有write_mailbox扩展权限.我猜这是为了防止垃圾邮件应用程序充斥朋友的收件箱.