我今天有点使用Hipchat API(v2),遇到了一个奇怪的问题,即我无法真正了解房间的所有历史记录。例如,当我查询一个特定日期时,它似乎只会检索给定日期的历史记录的一小部分。我本来打算简单地遍历一个房间的所有日期,以一种我可以使用的格式提取历史记录,但是最终还是碰到了这个问题,现在不确定是否真的有可能完全提取历史记录。
我意识到这有点笨拙。它以字符串的形式提取JSON,然后我必须将其形成为哈希值,所以我知道我做得并不尽如人意,但这只是我快速测试一下的大致history
方法API:
api_token = "MY_TOKEN"
client = HipChat::Client.new(api_token, :api_version => 'v2')
history = client['ROOM_NAME'].history
history = JSON.parse(history)
history.each do |key, history|
if history.is_a? Array
history.each do |message|
if message.is_a? Hash
puts "#{message['from']['name']}: #{message['message']}"
end
end
end
end
显然,对此的扩展是只是在所需范围内诅咒日期(使用:)client['ROOM_NAME'].history(:date => '2010-11-19', :timezone => 'PST')
,但是同样,我只得到了房间历史的一小部分。为了使它按预期工作,我是否缺少一些其他参数?
我完成了这项工作,但这是一个很大的痛苦。
首先以UTC当前 时间发送查询,但不包括时区作为开始日期:
这很奇怪:
400 Bad Request This day has not yet come to pass
。当您获得响应时,请使用最早的items.date
属性,删除时区,然后使用更新的date
参数重新提交上述URL :
如果通知在同一秒内将多条消息发布到同一房间,请确保包含微秒。
这将为您提供下一页消息。继续这样做,直到收到的max-results
信息少于返回的信息为止。
在start-index
完成上述工作之前,我尝试传递一个参数,它会给您几页结果,并且响应缺少links.next
属性,但不会提供完整的历史记录。在根据的历史记录中有9166条消息的聊天室中statistics.messages_sent
,它仅返回3217条消息。所以不要使用它。您可以statistics.messages_sent
用作是否检查所有消息的健全性检查。
哦,是的,通话中的last_active
属性/v2/room
无法信任,因为通知消息发布到会议室时它不会更新。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句