Сегодня я использовал 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')
), но опять же, я получал только часть истории для комнаты. Есть ли какие-то дополнительные параметры, которые мне не хватает, чтобы заставить его работать должным образом?