Getting Post ID with Topic ID - API Help Needed

Hi Everyone,

We are setting up a new Discourse forum and needed some help with the API.

One of the changes we are making is that we show the first post in a topic on the topic page (like Topic Preview). Since most posts will be visual, we show the image, the title, the replies and likes, etc of the topic to the user. Something like this:

We wanted the user to be able to like the first post in the topic by clicking on the heart icon from the main page. How can we get the first post id of a topic from the main page since we only have the topic id?

Also, once we get the post id, we need to send that and the post action type id as 2 to http://DiscourseURL/post_actions
Is that correct?

Thanks!

Using this topic as an example: You topic ID is 44239.

A GET to https://meta.discourse.org/t/44239.json returns an object where post_stream.posts[0].id = 194190.

I then liked your post by POSTing to https://meta.discourse.org/post_actions with id=194190&post_action_type_id=2&flag_topic=false. This request needs to be authenticated by an API key or cookies.

Thank you so much Felix. That helps a lot :slight_smile:

A tangential question.

I am using subfolders.

I can type https://mysite,com/subfolder/t/xx and get to the topic fine.

If I type https://mysite.com/subfolder/p/yyyy it translates to https://mysite,com/t/title/xx/yyyy but does not include the subfolder so it doesn’t display.

Thoughts?

Possibly a bug cc @neil

I fixed that today.

Thanks! I’ll try it out after the plugins I’m using are fixed to work with the latest version of Discourse.

도움이 되셨네요. 한 가지만 짚어둘 점은, 응답을 파싱할 때 "data"라는 단어를 잊지 마세요. 응답의 형태는 다음과 같습니다: {"data":{"post_stream":{"posts":[{"id":...

따라서 토픽의 첫 번째 게시글(즉, 토픽의 첫 번째 게시글)의 id를 얻으려면 구문은 response.data.post_stream.posts[0].id가 됩니다.