I don’t think they can. They would have to register and update their preferences on that topic or their overall notification preferences.
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.
Tenho uma pergunta da perspectiva de um não desenvolvedor.
Estou usando o Discourse como sistema de tickets da nossa empresa e o configurei com sucesso para criar novos tópicos de usuários não registrados em nosso fórum de suporte.
Ocasionalmente, preciso criar um ticket em nome de um cliente em vez de ele criá-lo diretamente.
Existe uma maneira fácil e passo a passo de fazer isso e criar um tópico em nome de alguém que ainda não tem uma conta no fórum? Não quero que eles tenham uma conta completa, a menos que se inscrevam por conta própria.
Eu tentaria criar um tópico por e-mail recebido:
Dessa forma, um usuário “staged” (em estágio) será criado na criação do tópico.
Você poderia criar o usuário “staged” via 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"
e então criar o tópico para o usuário, mas, na ação de criação do usuário, o Discourse enviará um e-mail de ativação:
{“success”: true,“active”: false,“message”: “Você está quase lá! Enviamos um e-mail de ativação para 2e6ac3603@example.com. Por favor, siga as instruções no e-mail para ativar sua conta. Se não chegar, verifique sua pasta de spam.”}
Então, cada uma dessas linhas é separada por um CR no final? E há um espaço duplo ou uma tabulação antes de cada barra invertida?
Desculpe, como eu disse, eu não sou um desenvolvedor, então apenas mostrar este código não é suficiente para me levar até o fim sem um pouco de informação extra.
Então, usando este método, apenas cria o usuário, mas mesmo que staged=true, ele envia o convite por e-mail?
A resposta mais fácil é sempre a melhor:
Então, usaremos isso para nossas necessidades ocasionais.
Obrigado pela ajuda.