Themen oder Nachrichten beim Erstellen über API zuweisen

I’d like to be able to create messages that are assigned to specific users. Is this something that is possible already and I am missing something, or that you would consider adding?

I am not seeing reference to the assign plugin in the API docs. Seems to me an e.g. assigned_to=usernname should be an option.

https://docs.discourse.org/#tag/Posts%2Fpaths%2F~1posts.json%2Fpost

The background to this is that I am using discourse as a ticket system, using @angus’s Tickets Plugin 🎟. The easiest way for me to allow members to create tickets is to create a gravity form in wordpress that creates the message in discourse. I know this can work and I have the rest of it lined up, just not the ability to assign tickets to specific users upon creation.

To assign a topic you issue an API request after creating the topic. For the request format, please read How to reverse engineer the Discourse API

4 „Gefällt mir“

Ich muss Topics über die API als gestaffelte Benutzer erstellen (der Absender muss kein Konto in Discourse haben), daher muss ich dies über den Endpunkt /admin/email/handle_mail tun. Dieser Endpunkt gibt jedoch keine Topic-ID zurück und scheint im Batch-Modus zu arbeiten.

Was ist der beste Weg, um dieses Topic zuzuweisen?

Am besten wäre es für mich, wenn der Endpunkt /admin/email/handle_mail ein Feld „assign

Warum wird der handle_email-Endpunkt zum Erstellen von Themen rückgängig gemacht?

Kannst du die Standard-API zum Erstellen von Themen nicht mit einem gestaffelten Benutzer verwenden?

1 „Gefällt mir“

Ich sehe keine Option, einen gestaffelten Benutzer über die API zu erstellen: Discourse API Docs

Außerdem wird hier empfohlen, den handle_email-Endpunkt zu verwenden: Creating a staged user with an API call - #2 by blake

[quote=“Honza_Pobořil, Beitrag: 3, Thema: 109770”]
Für mich wäre es am besten, wenn der Endpunkt /admin/email/handle_mail ein Feld „assign

2 „Gefällt mir“

Heureka!

Es ist möglich, “assign other regex” zu verwenden und dies im Text von /admin/email/handle_mail zu erwähnen.

1 „Gefällt mir“

Hallo,

ich benutze das Discourse Assign-Plugin und habe es geschafft. Hier ist der Python-Code:

import requests

# Diesen kannst du erhalten, indem du die Assign-Anfrage umkehrst und die Parameter und Werte in der Konsole überprüfst, wie bereits jemand erwähnt hat :)

base_url = 'DEINE_URL'
endpoint = '/assign/assign'

payload = {
    'username': 'BENUTZERNAME', # Der Benutzername der Person, der du das Thema zuweisen möchtest
    'group_name': '',
    'target_id': THEMA_NUMMER,
    'target_type': 'Topic'
}

headers = {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'Referer': 'URL_DES_THEMAS',
    'Accept': '*/*',
    'Api-Key': 'DEIN_API_SCHLÜSSEL',
    'Api-Username': 'DEIN_BENUTZERNAME'
}

response = requests.put(f"{base_url}{endpoint}", data=payload, headers=headers)

if response.status_code == 200:
    print("Zuweisung erfolgreich!")
else:
    print(f"Zuweisung fehlgeschlagen mit Statuscode {response.status_code}: {response.text}")

Ich hoffe, es hilft ^^

1 „Gefällt mir“