Gibt es eine Möglichkeit, per API zuzuweisen? Ich sehe es nicht in der Dokumentation, aber ich würde mich gerne überraschen lassen ![]()
Bearbeitung: Sieht so aus, als würde ich versuchen, es durch Reverse Engineering zu ermitteln!
Gibt es eine Möglichkeit, per API zuzuweisen? Ich sehe es nicht in der Dokumentation, aber ich würde mich gerne überraschen lassen ![]()
Bearbeitung: Sieht so aus, als würde ich versuchen, es durch Reverse Engineering zu ermitteln!
Zunächst einmal ist unser Ziel, eine stabile API zu haben. Es ist eine mehrjährige Anstrengung, dorthin zu gelangen, aber es ist sicherlich ein Ziel, das wir erreichen wollen.
In der Zwischenzeit können Sie einen vernünftigen Trick für 2025 anwenden: Verlassen Sie sich auf KI-Agenten, um solche Dinge herauszufinden:
Dies zeigt, wie Sie sich auf unseren GitHub-Helfer verlassen können, um die Frage zu beantworten!
Haben Sie das herausgefunden? Wenn ja, können Sie Ihre Erkenntnisse hier teilen?
Hallo!
Noch nicht! Dieses Projekt wurde zugunsten von etwas Dringenderem zurückgestellt, aber nächste Woche bin ich wieder dran ![]()
@tobiaseigen das funktioniert für mich mit node js
var https = require(‘https’);
// Konfiguration
var CONFIG = {
apiUrl: ‘YOURDISCOURSEDOMAIN’,
apiKey: ‘YOURAPIKEY’,
apiUsername: ‘YOURAPIUSER’,
assignToUsername: ‘USERNAMETOASSIGNTO’ // Benutzername, dem Themen zugewiesen werden sollen
};
// Zu vergebende Themen-IDs
var topicIds = [634]; // Mit der Themen-ID ändern
function assignTopic(topicId, callback) {
var postData = JSON.stringify({
target_id: topicId,
target_type: ‘Topic’,
username: CONFIG.assignToUsername
});
var options = {
hostname: CONFIG.apiUrl,
port: 443,
path: ‘/assign/assign.json’,
method: ‘PUT’,
rejectUnauthorized: false,
headers: {
‘Api-Key’: CONFIG.apiKey,
‘Api-Username’: CONFIG.apiUsername,
‘Content-Type’: ‘application/json’,
‘Content-Length’: postData.length
}
};
var req = https.request(options, function(res) {
var data = ‘’;
res.on('data', function(chunk) {
data += chunk;
});
res.on('end', function() {
console.log('Status:', res.statusCode);
console.log('Rohantwort:', data);
try {
var response = JSON.parse(data);
if (res.statusCode === 200) {
console.log('Thema ' + topicId + ' erfolgreich zugewiesen');
} else {
console.log('Thema ' + topicId + ' Fehler:', response.errors || response.error_type || response);
}
} catch (e) {
console.log('Parse-Fehler:', e.message);
}
if (callback) callback();
});
});
req.on(‘error’, function(e) {
console.error('Anforderungsfehler für Thema ' + topicId + ':', e);
if (callback) callback();
});
req.write(postData);
req.end();
}
// Sequenziell ausführen
var index = 0;
function next() {
if (index < topicIds.length) {
assignTopic(topicIds[index], function() {
index++;
setTimeout(next, 500);
});
}
}
console.log('Weise Themen zu:', topicIds.join(‘, ‘));
console.log('Zuweisen an:', CONFIG.assignToUsername);
console.log(’’);
next();
Die Discourse Assign stellt diese API-Endpunkte bereit:
/assign/assign.json)Erforderliche Parameter:
target_id - Die Topic- oder Post-IDtarget_type - Entweder \"Topic\" oder \"Post\"Zusätzlich einer der folgenden:
username - Benutzername, dem zugewiesen werden sollgroup_name - Gruppenname, dem zugewiesen werden sollOptionale Parameter:
note - Zuweisungsnotizstatus - Zuweisungsstatusshould_notify - Benachrichtigungen senden (Standard: true)/assign/unassign.json)Erforderliche Parameter:
target_id - Die Topic- oder Post-IDtarget_type - Entweder \"Topic\" oder \"Post\"# Topic 123 dem Benutzer „john“ zuweisen
curl -X PUT "https://your-discourse.com/assign/assign.json" \
-H "Api-Key: YOUR_API_KEY" \
-H "Api-Username: YOUR_USERNAME" \
-H "Content-Type: application/json" \
-d '{\"target_id\": 123, \"target_type\": \"Topic\", \"username\": \"john\"}'
# Stattdessen einer Gruppe zuweisen
curl -X PUT "https://your-discourse.com/assign/assign.json" \
-H "Api-Key: YOUR_API_KEY" \
-H "Api-Username: YOUR_USERNAME" \
-H "Content-Type: application/json" \
-d '{\"target_id\": 123, \"target_type\": \"Topic\", \"group_name\": \"support-team\"}'
Hinweise
target_type: \"Post\" zusammen mit der Beitrags-ID verwenden@opcourdis Das obige Node.js-Beispiel sieht korrekt aus! ![]()
Danke fürs Teilen, schön zu sehen, dass wir all diese Parameter einbeziehen können