Getting who liked a post from the API

So, when we get a post like so:

GET /posts/13.json

We can see in the json actions_summary which contains the number of likes the post has. And you can deduce if the user I am logged in as has liked if “acted” or “can_act” is present.

"actions_summary": [
          {
            "id": 2,
            "count": 2,
            "acted": true
          },

But, how do I lookup which users liked the post? We have 2 likes here, one is mine since “acted” is true. But there is one other like. How do I find out which user that is through the API? It is fine if we have to use an admin account to check.

3 Me gusta

As explained at How to reverse engineer the Discourse API

curl 'https://meta.discourse.org/post_action_users?id=507029&post_action_type_id=2'
3 Me gusta

Your link does not work.

This works for me though:

GET /post_action_users?id=13&post_action_type_id=2

This outputs

{
  "post_action_users": [
    {
      "id": 1,
      "username": "ausername",
      "name": null,
      "avatar_template": "/letter_avatar_proxy/v2/letter/i/{size}.png",
      "post_url": null,
      "username_lower": "ausername"
    },
    {
      "id": 10,
      "username": "anotherusername",
      "name": null,
      "avatar_template": "/letter_avatar_proxy/v2/letter/{size}.png",
      "post_url": null,
      "username_lower": "anotherusername"
    }
  ]
}

Which is a list of users who liked the post with id 13

It was missing the accept header:

curl 'https://meta.discourse.org/post_action_users?id=507033&post_action_type_id=2' -H 'Accept: application/json'
3 Me gusta

you need to pass

/post_action_users.json?id=507033&post_action_type_id=2

Hola!

Estoy tratando de averiguar algo similar para un foro de Discourse que utiliza mi empresa: https://discuss.blues.io

Tengo credenciales de nivel de personal, sin embargo, cuando miro la carga útil JSON de las publicaciones que han sido “me gusta”, no veo ninguna indicación de ello ni en las cargas útiles JSON de actions_summary ni de post_action_users.

Por ejemplo, esta publicación tiene muchas respuestas y “me gusta”, pero cuando la consulto en el navegador https://discuss.blues.io/post_action_users.json?id=31&post_action_type_id=2, obtengo {"post_action_users":[]}.

¿Quizás la API ha cambiado? ¿O estoy consultando lo incorrecto? Cualquier ayuda es muy apreciada.

Y una pregunta de seguimiento: ¿hay alguna webhook que podría configurar para ser notificado cuando un usuario le da “me gusta” a una publicación, identificando al usuario y la publicación? Nos gustaría capturar esta información para fines analíticos.

¡Gracias!

1 me gusta

¡Hola Paige!

La publicación con ID 31 es una pequeña acción de publicación para fijar el tema globalmente (es decir, Post.find(31).action_code == 'pinned_globally.enabled'), y esas publicaciones no se pueden interactuar como las publicaciones normales, por lo que no hay forma de que tenga “Me gusta”.

Solo hay una publicación normal en ese tema, pero tampoco tiene “Me gusta”.

Prueba la publicación 33; esa sí tiene “Me gusta” y puedes verlos serializados aquí:

https://discuss.blues.io/post_action_users.json?id=33&post_action_type_id=2

5 Me gusta

Hola Leonardo,

Muchas gracias por la información sobre los diferentes tipos de publicaciones, es muy útil saberlo.

Agradezco tu respuesta.

Saludos,
Paige

2 Me gusta