Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用facebook fql获取未知收件人的电子邮件或姓名而不是0的消息?_Facebook_Facebook Graph Api_Message_Facebook Fql - Fatal编程技术网

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

如何使用facebook fql获取未知收件人的电子邮件或姓名而不是0的消息?,facebook,facebook-graph-api,message,facebook-fql,Facebook,Facebook Graph Api,Message,Facebook Fql,如何使用facebook fql获取未知收件人的电子邮件或姓名而不是0的消息 我编写了一些php代码来导出facebook邮箱中的消息。 我正在使用FQL 这是我在中使用的flq多查询,用于获取给定的消息以及完整的消息和收件人数据 { "threads": "SELECT thread_id FROM thread WHERE folder_id IN (0,1,4)", "messages": "SELECT thread_id, message_id, author_id, created_

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

我编写了一些php代码来导出facebook邮箱中的消息。 我正在使用FQL

这是我在中使用的flq多查询,用于获取给定的消息以及完整的消息和收件人数据

{ "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获得它

谢谢。

您首先必须获得文件夹id,其中包含邮件://0收件箱、1个otubox、4个更新//

SELECT folder_id, name, unread_count, viewer_id FROM mailbox_folder WHERE viewer_id=me()
获取文件夹\u id时,您可以获取线程\u id:

使用此线程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())
对于所有这些,您需要一个应用令牌

您可以在这里尝试:

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())