我已经阅读了 Twitter REST API 文档,我知道它说您一次可以获取 200 个,最多可以获取 800 个。但是......我不能。我正在拉 200,使用最后一条推文作为 max_id,然后发送另一个请求,但我只收到来自第一个请求的最后一条推文,而不是我假设的 800 限制中的剩余部分。
所以我做了一些研究,发现当我从其他帐户发送更多直接消息时,我的其他直接消息正在消失(即,如果我从一个名为“sup”的帐户收到 200 条消息,而我从一个名为“foo”、“sup”的帐户将仅显示 195 条直接消息,而“foo”将显示 5 条。这 5 条消息将从 twitter DM 窗口中的“sup”以及 API 调用中消失。
我正在使用 Twython 来执行此操作,但我不相信切换回请求会改变任何事情,因为我可以明显看到消息从聊天日志中消失。这是否意味着 Twitter 只存储 200 个 DM?还是我做错了什么。
这是我用来提取直接消息的代码。请记住,我仍然不知道如何解释 DM 在 Twitter DM 控制台中消失的原因。
test_m = twitter.get_direct_messages(count=200)
i = 0
for x in test_m:
print 'dm number = ' + str(i) + '| dm id= '+ str(x['id']) + ' |text= ' + x['text']
i += 1
m_id = test_m[-1]['id']
test_m_2 = twitter.get_direct_messages(count=200, max_id=m_id)
此代码将 test_m 作为 200 个项目的数组返回,并将 test_m_2 作为 1 个项目的数组返回,其中包含 test_m 的最后一个元素。
编辑:嗯,还没有回应,但我想我应该补充一点,这个方法成功地为我所做的其他 api 调用返回了 200 多条消息(用户时间线、提及时间线、转发)。根据我的测试,我必须假设在所有 DM 交互过程中,twitter 只存储了 200 条传入消息。如果我错了,请告诉我!