Estou trabalhando em um script Python que usa a API do Discourse para definir o status de uma postagem como ‘pinned-globally’, seguindo a documentação da API.
A solicitação para ‘pinned-globally’ falha com o código de retorno 400, enquanto a solicitação com o parâmetro de status definido como ‘pinned’ funciona perfeitamente (ou seja, consigo ver a postagem fixada localmente).
Este é o trecho do meu código:
apiWebsite = '<my_website_URL>'
apiKey = '<secret>'
apiUsername = '<secret>'
headers = {
'Api-Key': apiKey,
'Api-Username': apiUsername
}
# Esta solicitação funciona OK
# Fixa a mesma postagem 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)
Depois de definir o status fixado de volta para falso, tento fixá-lo globalmente assim.
# Esta solicitação NÃO FUNCIONA
# Fixa o mesmo tópico 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)
Olá David,
claro, eu apenas coloquei o código assim para mostrar como as duas solicitações diferem.
Vou alterar a primeira postagem para deixar mais claro.
Ah, ótimo . Analisando o código, vejo isso, o que causaria um erro 400
Acho que você precisa de pinned_globally em vez de pinned-globally. Pode tentar isso e ver se funciona? Parece que há um erro de digitação na nossa documentação da API — vou corrigir.