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 « J'aime »

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 « J'aime »

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 « J'aime »

you need to pass

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

Bonjour !

J’essaie de déterminer une chose similaire pour un forum Discourse que mon entreprise utilise : https://discuss.blues.io

J’ai des identifiants de niveau personnel, cependant, lorsque je regarde la charge utile JSON des messages qui ont été aimés, je n’en vois aucune indication, que ce soit dans les charges utiles JSON actions_summary ou post_action_users.

Par exemple, ce message a de nombreuses réponses et mentions J’aime, mais lorsque je le interroge dans le navigateur https://discuss.blues.io/post_action_users.json?id=31&post_action_type_id=2, j’obtiens {"post_action_users":[]}

Peut-être que l’API a changé ? Ou je recherche la mauvaise chose. Toute aide est grandement appréciée.

Et une question de suivi : existe-t-il un webhook que je pourrais potentiellement configurer pour être averti lorsqu’un utilisateur aime un message, en identifiant l’utilisateur et le message ? Nous aimerions capturer ces informations à des fins d’analyse.

Merci !

1 « J'aime »

Salut Paige !

La publication avec l’ID 31 est une petite action de publication pour épingler le sujet globalement (c’est-à-dire Post.find(31).action_code == 'pinned_globally.enabled'), et ces publications ne peuvent pas être manipulées comme des publications normales, il n’y a donc aucun moyen qu’elles aient des likes.

Il n’y a qu’une seule publication ordinaire dans ce sujet, mais elle n’a pas non plus de likes.

Essayez la publication 33 - celle-ci a des likes et vous pouvez les voir sérialisés ici :

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

5 « J'aime »

Salut Leonardo,

Merci beaucoup pour les informations sur les différents types de publications, c’est une excellente information à connaître.

J’apprécie votre réponse.

Cordialement,
Paige

2 « J'aime »