API de notes utilisateur Discourse

Je veux récupérer toutes les notes d’utilisateur pour un utilisateur à l’aide de l’API Discourse. Les notes sont appliquées avec discourse-user-notes.

En utilisant Obtenir un utilisateur par id, je peux voir le champ user_note_count. Cependant, je n’arrive pas à trouver le contenu de la note utilisateur.

Je veux joindre des informations à un utilisateur telles que le corps d’un e-mail ou les points principaux d’une visioconférence que le personnel a eue avec l’utilisateur. J’espère utiliser les données PostgreSQL existantes de Discourse au lieu de créer une base de données en double avec des champs pour les notes.

J’espère utiliser le plugin discourse-user-notes existant car il est déjà intégré.

J’ai une application de bureau distincte pour le personnel qui utilise l’API Discourse et est écrite en Dart/Flutter à l’aide de requêtes HTTP pour communiquer avec Discourse.

Je n’ai aucune expérience avec Ruby.

Existe-t-il un moyen d’obtenir des informations de ce fichier qui pourraient être exposées sous forme d’API HTTP ?

2 « J'aime »

Je vous recommande d’utiliser le plugin Data Explorer et Exécuter des requêtes Data Explorer avec l’API Discourse ; cela vous permet en quelque sorte de générer votre propre point de terminaison d’API (pour récupérer des données Data Explorer).

Est-ce que vous faites la demande en tant qu’utilisateur pouvant lire ces notes ?

1 « J'aime »

Merci pour votre aide. Quelle est la requête dont j’ai besoin pour voir le contenu des notes d’utilisateur ?

Y a-t-il un moyen de voir les champs dans lesquels la note est stockée à partir du code source du plugin ? Peut-être puis-je afficher un champ personnalisé (custom_field) pour l’utilisateur d’une manière ou d’une autre ?

Je ne sais pas lire Ruby, mais peut-être y a-t-il un champ appelé user_notes quelque part dans Discourse que je peux rechercher avec user.id et il y a un objet notes avec un champ raw ?

Je devine seulement. Je vais peut-être extraire les utilisateurs et stocker les notes dans une base de données séparée, pas Discourse. Cependant, j’aimerais utiliser les données dans Discourse si possible, car il sera plus facile de joindre la note à un utilisateur et à un message spécifiques.

      notes = notes_for(user.id)
      record = {
        id: SecureRandom.hex(16),
        user_id: user.id,
        raw: raw,
        created_by: created_by,
        created_at: Time.now
      }.merge(opts)

      notes << record
      ::PluginStore.set("user_notes", key_for(user.id), notes)

      user.custom_fields[COUNT_FIELD] = notes.size
      user.save_custom_fields

Je récupère la liste des utilisateurs en tant qu’administrateur pour voir quels utilisateurs ont des notes appliquées. Après avoir identifié la liste des utilisateurs avec des notes, je veux afficher les notes dans un tableau afin que le personnel puisse répondre plus facilement aux questions avec le contexte de l’utilisateur.


J’essaie d’utiliser /user_notes.json?user_id=2

1 « J'aime »

Grâce à @Falco, je suis en mesure d’obtenir les notes utilisateur.

curl https://community.domain.com/admin/reports/user_notes.json \
  -H 'Api-Key: abcdefghijklmnop' \
  -H 'Api-Username: system'
4 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.