Creating a staged user with an API call

I don’t think they can. They would have to register and update their preferences on that topic or their overall notification preferences.

2 Me gusta

Are there some docs about this endpoint? I have searched API docs but it is not there.

I am looking for a way how to create topic and assign it to a specific user (by discourse-assign plugin).

And also thinking if API key have to by for user system or I can use some other user with minimal permissions (what are that minimal required?).

Just this post: Creating a staged user with an API call - #8 by blake

This is totally doable. Have a look at Reverse engineer the Discourse API and you will see which endpoint the discourse-assign plugin calls.

Nope does not need to be with the system user. You just need a user with enough trust level to create and assign topics.

Thank you for reply. I understand how to assign specific post, but how to reliably find post just created by the /admin/email/handle_mail endpoint? It also seems to queue received calls, so I will not always find it immediately after the first call.

Correct, that endpoint does not return a topic_id.

Do they HAVE to be staged users? Couldn’t you just create the user via the api and then create a topic? Or are people that don’t have accounts yet going to be emailing that endpoint?

It is for public contact form on different products where each have different merchant. I want to assign topic to the specific merchant and also deny access to topics what does not belong to that merchant.

Tengo una pregunta desde la perspectiva de alguien que no es desarrollador.

Estoy usando Discourse como sistema de tickets de nuestra empresa y lo he configurado correctamente para crear nuevos temas de usuarios no registrados en nuestro foro de soporte.

Ocasionalmente, necesito crear un ticket en nombre de un cliente en lugar de que lo cree directamente.

¿Hay una forma sencilla paso a paso de hacer esto y crear un tema en nombre de alguien que no tiene una cuenta en el foro? No quiero que tengan una cuenta completa a menos que se registren por sí mismos.

1 me gusta

Intentaría crear un tema a través del correo electrónico entrante:

De esta manera, se creará un usuario provisional al crear el tema.

Podrías crear el usuario provisional a través de la API

curl -i -sS -X POST "http://localhost:4200/users"  \
-H "Content-Type: multipart/form-data"  \
-H "Api-Key: 3e8aa0b7970cf010da24d06215fdc7b3951352c61a59ada70f5f36b4ce890bb2"  \
-H "Api-Username: system"  \
-F "name=2e6ac3603"  \
-F "active=false"  \
-F "staged=true"  \
-F "username=2e6ac3603"  \
-F "email=2e6ac3603@example.com"  \
-F "password=f9b4c3c7ebd1c2877a0ad659be6ca83e"

y luego crear el tema para el usuario, pero, en la acción de creación de usuario, Discourse enviará un correo electrónico de activación:

{“success”: true,“active”: false,“message”: “¡Casi has terminado! Enviamos un correo electrónico de activación a 2e6ac3603@example.com. Sigue las instrucciones del correo electrónico para activar tu cuenta. Si no llega, revisa tu carpeta de spam.”}

Entonces, ¿cada una de estas líneas está separada por un CR al final? ¿Y hay un doble espacio o una tabulación antes de cada barra invertida?
Lo siento, como dije, no soy desarrollador, así que solo mostrar este código no es suficiente para llevarme a la meta sin un poco de información adicional.

Entonces, ¿usar este método solo crea el usuario, pero a pesar de que staged=true, envía la invitación por correo electrónico?

La respuesta más sencilla siempre es la mejor:

Así que usaremos esa para nuestras necesidades ocasionales.
Gracias por la ayuda.

2 Me gusta