4

我正在尝试实现类似于 Dropbox 上的共享功能的功能,该功能允许您向 Facebook 朋友发送邀请。

https://www.dropbox.com/share

您需要登录/创建一个帐户并拥有一个共享文件夹才能看到它。

该功能仅显示一个 Facebook 对话,即授予其应用程序权限-我不知道它是如何设法发送私人消息的-根据我所做的研究,这甚至是不可能的,其次,我不知道不知道它是如何在不使用 Facebook 对话的情况下实现它的——它使用它自己的模态框。

到目前为止,我已经设法将 Facebook 朋友列表拉入 jquery ui 自动完成功能,但现在我有了他们的 id,不知道如何将私人消息发送给选定的朋友。

我能想到的唯一方法是通过 id@facebook.com 向用户发送电子邮件,但不知道如何将图像、描述、链接等附加到普通的墙/时间轴帖子上。

我希望这里的一些 Facebook 专家能提供他们的想法和意见吗?

4

2 回答 2

4

据我所知,使应用程序能够向非应用程序用户发送私人消息的唯一方法是通过Chat API。为此,您需要询问“xmpp_login”,其中:

为与 Facebook Chat 集成的应用程序提供登录用户的能力

权限参考

当您拥有该权限时,您可以成为用户的 xmpp 客户端,从用户朋友那里获取状态更新(并且您可以知道用户的哪些朋友在线)并且您可以代表用户向朋友发送消息,但是同样在这里 facebook 要求消息将来自用户,这可能是 Dropbox 中的模态对话框。

这个 api 不是一个简单的,因为它要求你的应用程序有一个 xmpp 客户端。有一些客户端实现(flash 甚至js 客户端),但我没有这方面的经验,另一方面,我可以根据经验告诉你,管理每个登录客户端的 xmpp 可能很棘手,所以除非你真的需要它,否则尽量避免它.

您可以在 facebook 中删除您为 dropbox 拥有的应用程序,然后再次添加它,然后您将看到权限是什么,看看他们是否确实要求“xmpp_login”权限,如果没有,请告诉我他们要求什么.


编辑

你让我很感兴趣,所以我自己尝试了,你是对的,他们没有要求“xmpp_login”权限,只要求“offline_access”和“publish_stream”。

我无法解释他们是如何做到这一点的,他们不在客户端这样做,我可以看到请求发送到他们的服务器。我最好的猜测是他们拥有 facebook 的特权,我知道他们对某些公司这样做。

如果我是对的,对你来说有两个选择:使用发送对话框或使用聊天 API。

于 2012-04-26T21:56:27.943 回答
1

在 Dropbox 中,他们使用他们的 Facebook 电子邮件地址(例如,用户名@facebook.com)向特定用户发送电子邮件

您可以在您的 facebook 常规帐户设置中看到此电子邮件地址。你可以在它下面看到这个注释,上面写着:

“您的 Facebook 电子邮件基于您的公开用户名。发送到该地址的电子邮件会转到 Facebook 消息。”

您只需要检索用户的电子邮件 ID 和他们朋友的用户名....

并且您也可以发送附件......!

于 2013-07-26T12:40:05.593 回答