2011-11-02 89 views

回答

1

Articleinbox連接提出了一種方法來讀取和存儲Facebook的消息:

的過程是通過以下步驟來完成:

  • 記錄在:登錄可能是一個棘手的部分。您登錄到一個IMAP服務器的方法是使用下面的命令:

    登錄用戶名密碼

  • 清單文件夾:你會發出到IMAP服務器的命令是:

    LIST "" *

因爲我們從郵箱文件夾API說明知道,只有 ŧ hree文件夾。這些文件夾是:

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

考慮到這一點,我們可以硬編碼到列表 命令如下回應:

LIST (\HasChildren) "/" Inbox 
LIST (\HasChildren) "/" Outbox 
LIST (\HasChildren) "/" Updates 
  • 選擇一個文件夾:在IMAP,使用以下命令來選擇一個文件夾:

    SELECT folder-name

  • 獲取消息內容:通過IMAP獲取消息的關鍵是一個名爲FETCH的命令。 FETCH命令帶有很多不同的模式,但我們將重點介紹最基本的模式。這些 是(AFAIK)FLAGS,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/