给朋友发私信
Posted
技术标签:
【中文标题】给朋友发私信【英文标题】:Send private messages to friends 【发布时间】:2011-02-04 04:33:26 【问题描述】:我需要通过 Facebook 连接用户的信息并向他的所有朋友发送私信。有可能吗?
【问题讨论】:
我意识到这并不能解决 OP 的问题,但那些正在寻找回复私人消息的方法的人可能会发现这很有用:***.com/questions/9598369/… 【参考方案1】:不,这是不可能的。为了让您向 Facebook 用户发送任何类型的消息,您需要获得该用户的许可。
如果有人使用 Facebook Connect 登录您的网站,则他们明确同意与您的网站共享他们的 Facebook 数据,然后您将能够通过正常渠道向该人发送消息。您还可以获取他们的朋友列表。但是,您不能向朋友发送消息。
【讨论】:
我的 Google-fu 让我失望了。有关于如何执行此操作的链接?【参考方案2】:你不能。 Facebook API 有 read_mailbox 但没有 write_mailbox 扩展权限。我猜这是为了防止垃圾邮件应用充斥朋友的收件箱。
【讨论】:
【参考方案3】:现在这是不可能的,但有一种解决方法。您可以在公共领域与用户互动并要求他们向您发送私人消息,但您不能发回私人消息,只能发送公共消息。当然,这一切都取决于用户是否授予您正确的权限。
如果您已授予访问某人朋友的权限,理论上您可以在该用户墙上发布对每个朋友的引用,要求他们公开与您互动,然后可能私下向您发送消息。
结交朋友
#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/
【讨论】:
:现在可以私信了。我已经给出答案了。【参考方案4】:一种解决方法,虽然不是很好,是使用新的@facebook.com 电子邮件地址。这样做有一些缺点:
1) 并非所有人(截至本文发布时)都在其帐户中启用了新消息应用程序。
2) 不是每个人都会在他们的消息应用程序中设置他们的@facebook.com 电子邮件。
3) 不是每个人都会选择他们的用户名(如果他们甚至有 Facebook 用户名)作为他们的电子邮件地址。
【讨论】:
【参考方案5】:现在可以通过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 指定。
到 要将消息发送到的用户 ID 或用户名。一旦对话框 出现时,用户可以指定其他用户、Facebook 组和 要将消息发送到的电子邮件地址。将内容发送到 Facebook 群组会将其发布到群组的墙上。
链接 (必需)要在消息中发送的链接。
图片 默认情况下,将从指定的链接获取图片。网址 要包含在消息中的图片。图片将显示 链接旁边。
名称 默认情况下,标题将从指定的链接中获取。的名字 链接,即显示用户将点击的文本。
说明 默认情况下,将从指定的链接中获取描述。 显示在链接下方的描述性文字。
查看更多here
@VishwaKumar:
要发送带有自定义文本的消息,您必须将“消息”参数添加到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 的弹出窗口并且只能填充一个人(此时,跟踪错误 here)。一个完整的解决方案允许你使用标准的 API 来发送你想要的消息,尽管 Facebook 似乎已经把它拿走了。 @Somnath,感谢您发布解决方案!不知道有没有办法绕过写消息窗口直接发送消息? @CyberJunkie:我认为 facebook 不提供这种绕过功能。用户必须单击发送消息按钮。否则,您的收件箱将充满广告。 @Somnath:我尝试了您的解决方案并且它有效,但是有没有办法在弹出窗口中使用自定义消息填充消息? @VishwaKumar:你的意思是当打开消息框时应该填充自定义消息?【参考方案6】:您可以使用 Facebook 聊天 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
【讨论】:
关于此的博文 - dalibornasevic.com/posts/… 你有php中类似的代码发送私信吗? 自 2015 年 5 月 1 日后的 v2.0 起已弃用此功能【参考方案7】:对于移动应用程序,我通过在对话框视图中注入 javascript 做了一个解决方案。我的 ios 应用程序中有一个隐藏的网络视图。加载fb消息发送对话框api ..然后我注入一些javascript来设置“to”和“message”字段并提交表单..这样最终用户不需要做任何事情。消息以静默方式发送到 facebook 收件箱...
【讨论】:
你能详细解释一下吗? @Totty 你能展示你的实现吗?我的 iOS 应用非常需要它。【参考方案8】:这个没有graph api,你需要用facebook xmpp chat api来发送消息,好消息是:我做了一个php类,太容易使用了,调用一个函数,消息就可以了发送,它的开源,检查一下:facebook message api php 描述说它是一个封闭源,但它后来被开源,见第一条评论,你可以从 github 克隆。它现在是开源的。
【讨论】:
【参考方案9】:这个帖子说你不能在 facebook 上向一群朋友发送私人消息,但我找到了这个https://developers.facebook.com/docs/sharing/reference/send-dialog
【讨论】:
以上是关于给朋友发私信的主要内容,如果未能解决你的问题,请参考以下文章