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 „Gefällt mir“

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 „Gefällt mir“

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 „Gefällt mir“

you need to pass

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

Hallo!

Ich versuche, eine ähnliche Sache für ein Discourse-Forum zu ermitteln, das mein Unternehmen verwendet: https://discuss.blues.io

Ich habe Anmeldeinformationen auf Mitarbeiterebene, aber wenn ich mir die JSON-Nutzlast für Beiträge ansehe, die „geliked“ wurden, sehe ich keine Angabe dazu, weder in der actions_summary- noch in der post_action_users-JSON-Nutzlast.

Zum Beispiel hat dieser Beitrag viele Antworten und Likes, aber wenn ich ihn im Browser abfrage https://discuss.blues.io/post_action_users.json?id=31&post_action_type_id=2, erhalte ich {"post_action_users":[]} zurück.

Vielleicht hat sich die API geändert? Oder ich frage nach dem falschen Ding. Jede Hilfe wird sehr geschätzt.

Und eine Folgefrage: Gibt es einen Webhook, den ich potenziell einrichten könnte, um benachrichtigt zu werden, wenn ein Benutzer einen Beitrag „liked“, der den Benutzer und den Beitrag identifiziert? Wir möchten diese Informationen zu Analysezwecken erfassen.

Danke!

1 „Gefällt mir“

Hallo Paige!

Der Beitrag mit der ID 31 ist eine kleine Behandlungsaktion zum globalen Anheften des Themas (d. h. Post.find(31).action_code == 'pinned_globally.enabled'), und diese Beiträge können nicht wie normale Beiträge bearbeitet werden, daher kann er keine Likes haben.

In diesem Thema gibt es nur einen normalen Beitrag, aber auch dieser hat keine Likes.

Versuchen Sie es mit Beitrag 33 – dieser hat Likes und Sie können sie hier serialisiert sehen:

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

5 „Gefällt mir“

Hallo Leonardo,

vielen Dank für die Informationen über die verschiedenen Arten von Beiträgen – das sind tolle Informationen, die man wissen sollte.

Ich weiß deine Antwort zu schätzen.

Viele Grüße,
Paige

2 „Gefällt mir“