2

有谁知道是否可以通过 imap 或 pop 访问 facebook 消息来管理电子邮件客户端中的 facebook 消息?

4

2 回答 2

3

不,这是不可能的。只有公开记录的 API可用。

尤其看User对象inbox的连接

于 2011-11-02T09:40:19.893 回答
1

本文提出了一种读取和存储 facebook 消息的方法:

该过程通过以下步骤完成:

  • 登录:登录可能是比较棘手的部分之一。登录 IMAP 服务器的方式是使用以下命令:

    登录用户名密码

  • 列出文件夹:您向 IMAP 服务器发出的命令是:

    LIST "" *

由于我们从邮箱文件夹 API 描述中知道,只有三个文件夹。这些文件夹是:

Inbox (folder_id 0)
Outbox (folder_id 1)
Updates (folder_id 4)

考虑到这一点,我们可以对 list 命令的以下响应进行硬编码:

LIST (\HasChildren) "/" Inbox
LIST (\HasChildren) "/" Outbox
LIST (\HasChildren) "/" Updates
  • 选择文件夹:在 IMAP 中,使用以下命令选择文件夹:

    SELECT folder-name

  • 获取消息内容:通过 IMAP 获取消息的关键是一个名为 FETCH 的命令。FETCH 命令带有许多不同的模式,但我们将专注于最基本的模式。这些是(AFAIK)标志、RFC822、RFC822.HEADER、RFC822.TEXT、RFC822.SIZE 和 UID。由于 RFC822 只是 RFC822.HEADER 和 RFC822.TEXT 的组合,我们需要担心的变量少了一个。

  • FETCH UID让我们从 UID 开始,因为这是最简单的。您将按如下方式发出此命令:

    FETCH 1:6 (UID)

预期的结果将如下所示:

1 FETCH (UID 1029955483)
2 FETCH (UID 1029955484)
3 FETCH (UID 1029955485)
4 FETCH (UID 1029955486)
5 FETCH (UID 1029955487)
6 FETCH (UID 1029955488)

Facebook 的 API 中的等效命令是这样的(我不确定是否可以组合这样的查询,但你明白了):

SELECT message_id FROM message WHERE thread_id IN (SELECT thread_id FROM thread WHERE folder_id = 0)

然后,您将使用该输出作为 UID。

更多操作可在http://www.emailserviceguide.com/2010/01/making-facebooks-messaging-system-imap-compatible/

于 2014-08-23T06:20:46.983 回答