我正在编写一个java应用程序,我需要访问我的聊天记录(我和另一个Facebook好友之间的聊天消息)。我看过了 this link,但似乎已经过时,因为我注意到Facebook显着改变了他的信使API。我想知道是否仍然可以通过java访问我的消息历史记录。
P.S。我发现了一个名为restfb的好的Facebook Graph API。但我无法为聊天消息找到这样的API。
答案 0 :(得分:2)
您可以使用图谱API的inbox
资源:https://developers.facebook.com/docs/graph-api/reference/v2.3/user/inbox
修改强>:
要在Java中使用此功能,您需要先按照https://developers.facebook.com/docs/facebook-login/v2.3上的登录说明进行操作。这是一个足够大的操作,我将假设你已经完成了它 - 它远远超出了这个答案的范围(但我确定还有其他问题可以在StackOverflow上充分处理它,如果你看的话)。
一旦您拥有特定会话的访问令牌(您可以通过转到https://developers.facebook.com/docs/graph-api/reference/v2.3/user/inbox进行测试,点击图表资源管理器按钮,点击“获取令牌” - >“获取访问令牌”,并且确保在“扩展权限”下选择“read_mailbox”,读取API非常简单。只需几行就可以使用标准JDK类来完成:
String accessToken = "replaceThisWithAccessToken";
String urlString = MessageFormat.format("https://graph.facebook.com/v2.3/me/inbox?access_token={0}&&format=json&method=get",
accessToken);
URL url = new URL(urlString);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
bufferedReader.close();
这掩盖了许多事情 - 对身份验证没有帮助,假设您的活动信任存储包含Facebook SSL证书的证书路径(它应该),并忽略正确的错误处理。在实践中,你会想要使用RestClient或类似的东西,而不是直接使用URL - 但上面应该基本上表明你需要做什么。