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.
Ich habe eine Frage aus der Sicht eines Nicht-Entwicklers.
Ich benutze Discourse als Ticketsystem für unser Unternehmen und habe es erfolgreich eingerichtet, um neue Themen von nicht registrierten Benutzern in unserem Support-Forum zu erstellen.
Gelegentlich muss ich im Namen eines Kunden ein Ticket erstellen, anstatt dass dieser es direkt erstellt.
Gibt es eine einfache Schritt-für-Schritt-Anleitung, um dies zu tun und ein Thema im Namen von jemandem zu erstellen, der noch kein Konto im Forum hat? Ich möchte nicht, dass sie ein vollständiges Konto haben, es sei denn, sie melden sich selbst an.
Ich würde versuchen, ein Thema per E-Mail zu erstellen:
Auf diese Weise wird bei der Themen-Erstellung ein “staged user” (Platzhalter-Benutzer) erstellt.
Sie könnten den “staged user” über die API erstellen
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"
und dann das Thema für den Benutzer erstellen, aber bei der Benutzererstellung sendet Discourse eine Aktivierungs-E-Mail:
{“success”: true,“active”: false,“message”: “Sie sind fast fertig! Wir haben eine Aktivierungs-E-Mail an 2e6ac3603@example.com gesendet. Bitte folgen Sie den Anweisungen in der E-Mail, um Ihr Konto zu aktivieren. Wenn sie nicht ankommt, überprüfen Sie Ihren Spam-Ordner.”}
Sind also jede dieser Zeilen am Ende durch einen CR getrennt? Und gibt es einen doppelten Leerzeichen oder einen Tab vor jedem Backslash?
Entschuldigung, wie gesagt, ich bin kein Entwickler, daher reicht es nicht aus, diesen Code nur anzuzeigen, um mich ohne ein wenig zusätzliche Informationen ins Ziel zu bringen.
Verwendet diese Methode also nur, um den Benutzer zu erstellen, aber obwohl staged=true, wird die E-Mail-Einladung gesendet?
Die einfachste Antwort ist immer die beste:
Wir werden diese also für unsere gelegentlichen Bedürfnisse nutzen.
Vielen Dank für die Hilfe.