2년 전에도 이 기능이 정말 필요했었습니다. 여전히 (더) 적절한 방법을 찾지 못했습니다. 제가 쓴 해킹 코드(hack)는 다음과 같습니다:
def get_topic_post(topic_id, post_num)
topic = @api.topic(topic_id, {print: true})
post_obj = topic['post_stream']['posts'].find { |p| p['post_number'] == post_num }
if post_obj
post_obj['id']
else
throw "Could not find post #{topic_id}/#{post_num}."
end
end
이 코드는 언급된 문제들을 우회합니다. {print: true}는 페이지네이션 문제를 해결하고, find는 모더레이션으로 인해 배열 인덱스와 게시물 번호 사이에 불일치가 생길 수 있기 때문에 필요합니다.
제가 다루는 크기의 토픽에서는 잘 동작합니다. 다만, API를 통해 더 직접적인 방식이 있다면 훨씬 만족스러울 것 같습니다.