Dropbox上的共享功能如何允许您向Facebook好友发送私人消息?

时间:2012-04-26 21:37:00

标签: php facebook facebook-graph-api facebook-php-sdk

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

https://www.dropbox.com/share

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

这个功能只展示了一个Facebook对话,它给了它应用程序的权限 - 我不知道它是如何设法发送私信 - 从我做过的研究中我甚至不可能,其次,我不知道如何在不使用Facebook对话的情况下实现它 - 它使用它自己的模态框。

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

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

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

2 个答案:

答案 0 :(得分:4)

我所知道的唯一方法是让应用向非应用用户发送私信,方法是Chat API。 为此你需要要求" xmpp_login"其中:

  

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

Permissions Reference

如果你有,你可以成为用户的xmpp客户端,从用户朋友那里获得状态更新(并且你可以知道用户的哪些朋友在线),你可以发送代表用户发送给朋友的消息,但在这里,facebook要求消息来自用户,这可能是保管箱中的模态对话框。

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

您可以删除Facebook中Dropbox的应用程序然后重新添加,然后您将看到权限是什么,看看他们是否真的要求" xmpp_login"如果没有,请告诉我他们要求的内容。


修改

你让我很好奇,所以我自己尝试了,而你是对的,他们并没有要求" xmpp_login"权限,仅限" offline_access"和" publish_stream"。

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

如果我对此感到满意,那么有两种选择:使用发送对话框或使用聊天API。

答案 1 :(得分:1)

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

您可以在Facebook常规帐户设置中查看此电子邮件地址。你可以在下面看到这个说明:

“您的Facebook电子邮件基于您的公共用户名。发送到此地址的电子邮件将发送到Facebook消息。”

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

你也可以发送附件...... !!