Sto lavorando a uno script Python che utilizza l’API di Discourse per impostare lo stato di un post su ‘pinned-globally’, seguendo la documentazione API.
La richiesta per ‘pinned-globally’ fallisce con il codice di ritorno 400, mentre la richiesta con il parametro status impostato su ‘pinned’ funziona perfettamente (cioè posso vedere il post fissato localmente).
Ecco un frammento del mio codice:
apiWebsite = '<my_website_URL>'
apiKey = '<secret>'
apiUsername = '<secret>'
headers = {
'Api-Key': apiKey,
'Api-Username': apiUsername
}
# Questa richiesta funziona correttamente
# Fissa lo stesso post localmente
payload = {
'status': 'pinned',
'enabled': 'true',
'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)
Dopo aver reimpostato lo stato fissato su falso, provo a fissarlo globalmente in questo modo.
# Questa richiesta NON funziona
# Fissa lo stesso argomento globalmente
payload = {
'status': 'pinned-globally',
'enabled': 'true',
'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)
Sto trascurando qualcosa di ovvio o si tratta di un vero bug?
Ah, bene . Dando un’occhiata al codice, vedo questo che causerebbe un errore 400
Penso che tu debba usare pinned_globally invece di pinned-globally. Puoi provarlo e vedere se funziona? Sembra che ci sia un errore di battitura nella nostra documentazione dell’API - provvederò a correggerlo.