Getting Post ID with Topic ID - API Help Needed


#1

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!


(Felix Freiberger) #2

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.


#3

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


(David) #4

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?


(Jeff Atwood) #5

Possibly a bug cc @neil


(Neil Lalonde) #6

I fixed that today.


(David) #7

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