/ me / inbox不会返回所有消息

时间:2014-02-23 11:38:41

标签: facebook facebook-graph-api

/ me / inbox及其中的线程似乎不包含所有消息。当一直寻呼到最后时,没有超过几个月前的消息。任何解决方法?

(new / me / threads api似乎解决了这个问题,但是对于非开发人员来说,threads-api仍然无法使用。)

1 个答案:

答案 0 :(得分:0)

所有消息 实际上都在图表中,您无法看到它们。

通过选择一个thread-id并附加“_messagenumber”,您可以自己查看所有消息仍然存在。 / threadid_000将检索该线程中的第一条消息,即使您无法通过线程分页来检索该消息。

那么为什么我无法正常检索它们?

问题似乎在于分页链接。分页使用“until”和“since”参数来获取下一批消息。线程分页链接的一般形式:

  

graph.facebook.com/的邮件ID /注释=极限25安培;因为= <强>历元&安培; __ paging_token = <强>令牌

收件箱中的“下一个”分页链接是什么,它将纪元移动到过去的某个时间。不幸的是,收件箱is broken中的直到(以及)参数。

所以我该如何解决这个问题?

请勿使用分页链接进行寻呼。使用偏移量。通过将检索到的消息数加一个偏移参数,检索第一页,然后是页面。 在伪代码中:

offset=0
do 
 {
    response=make_api_call('{$threadid}?offset={$offset}&limit=25')
    offset+=length(response)+1
    while length(response)>0

 }

假设一个帖子包含100条消息。这些API调用将用于检索从最新到最旧的所有消息:

  

graph.facebook.com/threadid/comments?offset=的 0 &安培;限制= 25

     

graph.facebook.com/threadid/comments?offset=的 26 &安培;限制= 25

     

graph.facebook.com/threadid/comments?offset=的 51 &安培;限制= 25

     

graph.facebook.com/threadid/comments?offset=的 76 &安培;限制= 25

确保您实际计算响应中的消息数量,并相应地计算偏移量,因为响应有时会减少项目。