Permesso API richiesto per attivare il timer della discussione

Ciao!

Sto cercando di attivare la chiusura automatica di un argomento x giorni dopo l’ultima risposta, ma non riesco a capire quale permesso sia necessario. Non vorrei davvero concedere un permesso di scrittura completo.

Endpoint specifico:
POST /t/{ID}/timer

Payload di esempio:

status_type=close&based_on_last_post=true&duration_minutes=20160

Potrebbe qualcuno indicarmi la direzione giusta, per favore?

Grazie mille in anticipo!

Ciao Mathew,

Potresti condividere l’errore che viene generato per la revisione?

Ciao @pedro

Ho sempre ricevuto un errore 403, a meno che non concedessi l’accesso in scrittura completo.

Dalle indicazioni nella vista API delle diverse URL supportate, nessuna sembra corrispondere al formato di quella del timer (/t/{ID}/timer). Ma potrei anche solo non aver notato qualcosa :slight_smile:

Preferirei non concedere l’accesso in scrittura completo, quindi sto solo cercando di identificare quale permesso sia necessario in questo caso specifico.

Grazie!

L’errore 403 è probabilmente legato al permesso richiesto dall’endpoint del timer del topic, piuttosto che dai parametri duration_minutes o based_on_last_post.

Ti consiglio di verificare i requisiti di autorizzazione dell’endpoint nel codice sorgente corrente di Discourse per POST /t/{id}/timer, anziché affidarti esclusivamente ai permessi mostrati nella documentazione API. L’azione del timer potrebbe richiedere la stessa capacità di scrittura/moderazione a livello di topic utilizzata dall’interfaccia utente, il che spiegherebbe perché attualmente funziona con l’accesso completo in scrittura.

Se esiste un permesso più granulare disponibile per i timer dei topic, dovrebbe essere possibile identificarlo dall’check di autorizzazione dell’endpoint e dal metodo corrispondente di policy/guardian. In caso contrario, sarebbe preferibile limitare la chiave API solo all’ambito del topic richiesto, anziché concedere un accesso in scrittura più ampio.