首页 文章

如何使用facebook fql获取邮件未知收件人的电子邮件或名称而不是0?

提问于
浏览
1

如何使用facebook fql获取邮件未知收件人的电子邮件或名称而不是0?

我写了一些PHP代码来导出我的facebook邮箱中的邮件 . 我正在使用FQL .

这是我在API tool explorer中使用的flq multiquery来获取给定的消息,包含完整的消息和收件人数据 .

{
"threads": "SELECT thread_id FROM thread WHERE folder_id IN (0,1,4)",
"messages": "SELECT thread_id, message_id, author_id, created_time, body FROM message where thread_id IN ( SELECT thread_id FROM #threads) and message_id='249...' ORDER BY created_time ASC",
"recipients_id": "SELECT thread_id,recipients FROM thread WHERE thread_id IN (SELECT thread_id FROM #messages)",
"recipients": "SELECT uid, username, name, email, profile_url, pic FROM user WHERE uid IN (SELECT recipients FROM #recipients_id)"
}

这是我得到的:

{
    "name": "recipients_id", 
    "fql_result_set": [
      {
        "thread_id": "26854010378569", 
        "recipients": [
          4735804651, 
          0, 
          0
        ]
      }
    ]
}

我之前将这个测试消息从经典的电子邮件客户端发送到我的Facebook地址,我知道这个消息的发送者是谁 . 4735804651是我的Facebook ID,收件人字段中的最后两个值(零)是指发件人和另一个不是我朋友的Facebook用户 . 在我发送的原始电子邮件中,我将我的@ facebook.com电子邮件和另一个@ m.facebook.com用户电子邮件发送给每个人都收到了该消息 . 当我从FB界面读取它并飞过发件人名称时,我可以看到发件人的电子邮件地址 . 如何通过facebook api或FQL获取它?

谢谢 .

1 回答

  • 0

    您首先必须获取folder_id,其中是消息:// 0收件箱,1个otubox,4个更新//

    SELECT folder_id, name, unread_count, viewer_id FROM mailbox_folder WHERE viewer_id=me()
    

    获取folder_id后,您可以获取thread_id:

    SELECT thread_id  FROM thread WHERE folder_id = x AND viewer_id=me()
    

    使用此thread_id,您可以从中获取所有消息:

    SELECT message_id, author_id, body, created_time, viewer_id FROM message WHERE thread_id = xxxxxxx
    

    并总结:

    SELECT message_id, thread_id, author_id, body, created_time, viewer_id FROM message WHERE thread_id   in (SELECT thread_id  FROM thread WHERE folder_id in(SELECT folder_id  FROM mailbox_folder WHERE viewer_id=me()) AND viewer_id=me())
    

    For all this you need an app token

    你可以在这里试试:https://developers.facebook.com/tools/explorer

相关问题