API de notas de usuario de Discourse

Quiero obtener todas las notas de usuario para un usuario utilizando la API de Discourse. Las notas se aplican con discourse-user-notes.

Usando Obtener un usuario por id, puedo ver el campo user_note_count. Sin embargo, no puedo encontrar el contenido de la nota del usuario.

Quiero adjuntar información a un usuario, como el cuerpo de un correo electrónico o los puntos principales de una videoconferencia que el personal haya tenido con el usuario. Espero usar los datos de PostgreSQL de Discourse en lugar de crear una base de datos duplicada con campos para notas.

Espero usar el plugin existente discourse-user-notes, ya que ya está construido.

Tengo una aplicación de escritorio separada para el personal que utiliza la API de Discourse y está escrita en Dart/Flutter utilizando solicitudes HTTP para comunicarse con Discourse.

No tengo experiencia con Ruby.

¿Hay alguna forma de obtener información de este archivo que pueda exponerse como una API HTTP?

2 Me gusta

Recomiendo que uses el plugin Data Explorer y Ejecuta consultas de Data Explorer con la API de Discourse; te permite generar tu propio endpoint de API (para recuperar datos de Data Explorer).

¿Estás solicitando como un usuario que puede leer esas notas?

1 me gusta

Gracias por tu ayuda. ¿Cuál es la consulta que necesito ejecutar para ver el contenido de las notas del usuario?

¿Hay alguna forma de ver los campos en los que se almacena la nota desde el código fuente del plugin? ¿Quizás pueda mostrar un custom_field para el usuario de alguna manera?

No sé leer Ruby, pero ¿quizás hay un campo llamado user_notes en Discourse en algún lugar que pueda buscar con user.id y luego haya un objeto notes con un campo raw?

Solo estoy adivinando. Quizás extraiga los usuarios y almacene las notas en una base de datos separada, no en Discourse. Sin embargo, me gustaría usar los datos en Discourse si es posible, ya que será más fácil adjuntar la nota a un usuario y publicación específicos.

      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

Estoy extrayendo la lista de usuarios como administrador para ver qué usuarios tienen notas aplicadas. Después de identificar la lista de usuarios con notas, quiero mostrar las notas en una tabla para que el personal pueda responder a las preguntas más fácilmente con la información de fondo del usuario.


Estoy intentando usar /user_notes.json?user_id=2

1 me gusta

Gracias a @Falco, puedo obtener las notas del usuario.

curl https://community.domain.com/admin/reports/user_notes.json \
  -H 'Api-Key: abcdefghijklmnop' \
  -H 'Api-Username: system'
4 Me gusta

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