适用于 iOS 的 Facebook SDK、私人消息

Posted

技术标签:

【中文标题】适用于 iOS 的 Facebook SDK、私人消息【英文标题】:Facebook SDK for iOS, private messages 【发布时间】:2013-06-28 07:17:21 【问题描述】:

下载 ios 版 Facebook SDK 后,我开始使用 HelloFaceBookSample。 我想出了如何(在我的时间线上)发布我选择的文字或图片。

我现在希望能够将文本或图片作为私人消息发送。 我看到了朋友选择器按钮和代码,但我不太明白如何选择朋友然后给他或她发送一段给定的文本。

我应该在哪里看?

感谢任何提示。

【问题讨论】:

【参考方案1】:

我刚刚从 Facebook API 中发现,可以使用消息对话框向特定 Facebook 用户发送直接消息。 点击此处了解更多详情:https://developers.facebook.com/docs/ios/share#message-dialog

只有一个限制: “因为只有在安装原生 Facebook Messenger for iOS 应用程序时才能显示消息对话框,所以我们需要做的第一件事是使用 FBDialogs canPresentMessageDialogWithParams: 方法检查是否是这种情况。”

希望有所帮助!

【讨论】:

【参考方案2】:

从好友选择器中你可以得到一堆 FBGraphUser 对象,它有一个用户名属性。如果您将 @facebook.com 附加到此属性,您将获得用户 facebook 电子邮件地址。现在您只需向该地址写一封电子邮件,用户就会从您注册在您的电子邮件地址下的 Facebook 帐户收到一条私人 Facebook 消息。

您的电子邮件地址需要附加到 Facebook 帐户的唯一前提条件。

【讨论】:

这在实践中是行不通的,因为通过他们的@facebook.com 地址发送给 Facebook 用户的所有消息最终都会进入他们的“垃圾邮件”文件夹(又名“其他”) 如果此人是您的朋友,那么她将收到该消息作为私人消息。 只有在发件人被 Facebook 识别的情况下。如果您在不涉及用户的情况下发送邮件(这是我想这个用户不想要的),这将是非常困难的,如果不是不可能的话 - 取决于 Facebook 实施的垃圾邮件保护级别的原因。我还没有彻底测试过 - 但一些统计数据会很有趣:)【参考方案3】:

无法通过 iOS 版 Facebook SDK 发送私人消息。发送对话框不适用于移动设备。

【讨论】:

【参考方案4】:

现在这是不可能的,但有一种解决方法。您可以在公共领域与用户互动并要求他们向您发送私人消息,但您不能发回私人消息,只能发送公共消息。当然,这一切都取决于用户是否授予您正确的权限。

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

结交朋友

#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/

请参阅以下内容: Send private messages to friends

【讨论】:

【参考方案5】:

您可以使用 XMPP 协议发送私人消息。 最有用的框架是 XMPPFramework - https://github.com/robbiehanson/XMPPFramework 在这里阅读更多 - https://developers.facebook.com/docs/chat/

【讨论】:

以上是关于适用于 iOS 的 Facebook SDK、私人消息的主要内容,如果未能解决你的问题,请参考以下文章

适用于 iOS 的 Facebook SDK

适用于 iOS 的 Facebook SDK 登录

适用于 iOS 访问令牌问题的 Facebook SDK

适用于 iOs 的 Facebook SDK 无法正常工作

适用于 iOS 的 Facebook SDK 的权限

Facebook iOS SDK 3.1 - 发送私人消息