Y a-t-il un moyen d’attribuer via l’API ? Je ne le vois pas dans la documentation, mais j’aimerais être surpris ![]()
Edit : il semble que je vais essayer de faire de l’ingénierie inverse !
Y a-t-il un moyen d’attribuer via l’API ? Je ne le vois pas dans la documentation, mais j’aimerais être surpris ![]()
Edit : il semble que je vais essayer de faire de l’ingénierie inverse !
Tout d’abord, notre objectif est d’avoir une API stable, il s’agit d’un effort de plusieurs années pour y parvenir, mais c’est certainement un endroit où nous voulons arriver.
En attendant, une astuce raisonnable pour 2025 consiste à s’appuyer sur des agents IA pour résoudre ces problèmes :
Cela montre comment vous pouvez compter sur notre assistant GitHub pour répondre à la question !
Avez-vous trouvé une solution ? Si oui, pouvez-vous partager ce que vous avez appris ici ?
Salut !
Pas encore ! Ce projet a été repoussé pour quelque chose de plus urgent, mais je m’y remettrai la semaine prochaine ![]()
@tobiaseigen cela fonctionne pour moi en utilisant node js
var https = require(‘https’);
// Configuration
var CONFIG = {
apiUrl: ‘YOURDISCOURSEDOMAIN’,
apiKey: ‘YOURAPIKEY’,
apiUsername: ‘YOURAPIUSER’,
assignToUsername: ‘USERNAMETOASSIGNTO’ // Nom d'utilisateur auquel attribuer les sujets
};
// IDs de sujets à attribuer
var topicIds = [634]; // changer avec l'id du sujet
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('Statut:', res.statusCode);
console.log('Réponse brute:', data);
try {
var response = JSON.parse(data);
if (res.statusCode === 200) {
console.log('Sujet ' + topicId + ' attribué avec succès');
} else {
console.log('Erreur pour le sujet ' + topicId + ':', response.errors || response.error_type || response);
}
} catch (e) {
console.log('Erreur d\'analyse:', e.message);
}
if (callback) callback();
});
});
req.on(‘error’, function(e) {
console.error('Erreur de requête pour le sujet ' + topicId + ':', e);
if (callback) callback();
});
req.write(postData);
req.end();
}
// Exécuter séquentiellement
var index = 0;
function next() {
if (index < topicIds.length) {
assignTopic(topicIds[index], function() {
index++;
setTimeout(next, 500);
});
}
}
console.log('Attribution des sujets:', topicIds.join(‘, ‘));
console.log('Attribuer à:', CONFIG.assignToUsername);
console.log(’’);
next();
Les points de terminaison API suivants sont exposés par Discourse Assign :
/assign/assign.json)Paramètres requis :
target_id - L’ID du sujet ou du messagetarget_type - Soit \"Topic\" soit \"Post\"Plus un des suivants :
username - Nom d’utilisateur auquel assignergroup_name - Nom du groupe auquel assignerParamètres optionnels :
note - Note d’assignationstatus - Statut de l’assignationshould_notify - Envoyer des notifications (par défaut : true)/assign/unassign.json)Paramètres requis :
target_id - L’ID du sujet ou du messagetarget_type - Soit \"Topic\" soit \"Post\"# Assigner le sujet 123 à l'utilisateur "john"
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"}'
# Assigner à un groupe à la place
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"}'
Notes
target_type: "Post" avec l’ID du message@opcourdis l’exemple Node.js ci-dessus semble correct ! ![]()
Merci d’avoir partagé, c’est agréable de voir que nous pouvons inclure tous ces paramètres
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.