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.
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.
Мне нужно создавать темы через API от имени пользователей в режиме ожидания (отправителю не обязательно иметь учётную запись в Discourse), поэтому я вынужден использовать endpoint /admin/email/handle_mail. Однако он не возвращает ID темы и, похоже, работает пакетно.
Какой лучший способ назначить эту тему?
Для меня было бы идеально, если бы endpoint /admin/email/handle_mail мог принимать поле assign.
Я использую плагин Discourse Assign и смог это сделать. Вот код на Python:
import requests
# Вы можете получить эти данные, проведя реверс-инжиниринг запроса assign и проверив параметры и значения в консоли, как кто-то уже упоминал ранее :)
base_url = 'ВАШ_URL'
endpoint = '/assign/assign'
payload = {
'username': 'ИМЯ_ПОЛЬЗОВАТЕЛЯ', # Имя пользователя, которому нужно назначить тему
'group_name': '',
'target_id': НОМЕР_ТЕМЫ,
'target_type': 'Topic'
}
headers = {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Referer': 'URL_ТЕМЫ',
'Accept': '*/*',
'Api-Key': 'ВАШ_API_КЛЮЧ',
'Api-Username': 'ВАШ_ПОЛЬЗОВАТЕЛЬ'
}
response = requests.put(f"{base_url}{endpoint}", data=payload, headers=headers)
if response.status_code == 200:
print("Назначение выполнено успешно!")
else:
print(f"Назначение не удалось с кодом состояния {response.status_code}: {response.text}")