我正在尝试构建一个Java桌面应用程序,它将使用RestFB库登录到Facebook的服务器,从用户与之交谈的最后10个人中获取最后25个消息,并显示一个弹出窗口,如果他们的名字是调用。
到目前为止,我必须使用应用程序的appID&amp ;;登录Facebook appSecret,并得到一个令牌。
我的问题是:在官方的Graph API文档中,他们说“read_mailbox”功能现在已经过时,只适用于用户管理的网页。他们还说它在Graph API 2.4之后被删除了(我使用的是2.6)。如何使用Graph API 2.6读取用户的私人消息?请注意,当我要搜索消息时,我不会知道用户与之交谈的最后10个人。这个问题已经回答了,但是对于那个解决方案,你必须知道conversationID(我想要提取,不提供)
答案 0 :(得分:0)
只有在您想要访问用户的邮箱时才使用read_mailbox权限。页面邮箱需要read_page_mailbox权限。
Facebook用户应该使用Facebook Messenger,这就是为什么弃用该权限,并且您在该权限的说明中找到此部分
此权限授予在Facebook尚不可用的平台上构建Facebook品牌客户端的应用程序。例如,Android和iOS应用不会获得此权限的批准。此外,Web,桌面,车载和电视应用程序将不被授予此权限。
除此之外,技术部分应该像这样工作:
首先你需要对话。它们按updated_time排序,因此您可以按正确的顺序获得最后的对话。您只需要前10个会话ID。
me/conversations?limit=10&fields=updated_time
然后,您将获取每个会话ID并获取消息。例如,通过此调用:
<conversationid>/messages?limit=25
正如一些提示,您可以使用字段并使用如下调用:
me/conversations?fields=messages.limit(25)&limit=10
在一次通话中获取您想知道的所有内容,但可能请求的数据太多而Facebook返回异常。这就是为什么我提出了第一种获取数据的方法。
您可以通过查看文档将这些调用转换为RestFB。