Ich glaube nicht, dass sie das können. Sie müssten sich dafür registrieren und ihre Einstellungen zu diesem Thema oder ihre allgemeinen Benachrichtigungseinstellungen aktualisieren.
Gibt es eine Dokumentation zu diesem Endpunkt? Ich habe die API-Dokumentation durchsucht, aber dort ist er nicht aufgeführt.
Ich suche nach einer Möglichkeit, ein Thema zu erstellen und es einem bestimmten Benutzer zuzuweisen (mittels des discourse-assign-Plugins).
Außerdem überlege ich, ob der API-Schlüssel für das Benutzersystem sein muss oder ob ich einen anderen Benutzer mit minimalen Berechtigungen verwenden kann (welche sind dafür mindestens erforderlich?).
Nur dieser Beitrag: Creating a staged user with an API call - #8 by blake
Das ist absolut machbar. Werfen Sie einen Blick auf Reverse engineer the Discourse API, und Sie werden sehen, welchen Endpunkt das discourse-assign-Plugin aufruft.
Nein, es muss nicht der Systembenutzer sein. Sie benötigen lediglich einen Benutzer mit ausreichendem Vertrauenslevel, um Themen zu erstellen und zuzuweisen.
Vielen Dank für die Antwort. Ich verstehe, wie man einen bestimmten Beitrag zuweist, aber wie finde ich zuverlässig den Beitrag, der gerade vom /admin/email/handle_mail-Endpunkt erstellt wurde? Es scheint auch, dass eingehende Aufrufe in eine Warteschlange gestellt werden, sodass ich ihn nicht immer sofort nach dem ersten Aufruf finden werde.
Richtig, dieser Endpunkt gibt keine topic_id zurück.
Müssen es gestaffelte Benutzer sein? Könntest du den Benutzer nicht einfach über die API erstellen und dann ein Thema anlegen? Oder werden Personen, die noch keine Konten haben, diesen Endpunkt per E-Mail kontaktieren?
Es handelt sich um ein öffentliches Kontaktformular für verschiedene Produkte, wobei jedes Produkt einen anderen Händler hat. Ich möchte Themen bestimmten Händlern zuweisen und den Zugriff auf Themen verweigern, die nicht zu diesem Händler gehören.
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.