Я работаю над скриптом на Python, который использует API Discourse для установки статуса поста в ‘pinned-globally’, следуя документации API.
Запрос на установку статуса ‘pinned-globally’ завершается ошибкой с кодом возврата 400, тогда как запрос с параметром status, установленным в ‘pinned’, работает безупречно (то есть я вижу, что пост закреплен локально).
Вот фрагмент моего кода:
apiWebsite = '<my_website_URL>'
apiKey = '<secret>'
apiUsername = '<secret>'
headers = {
'Api-Key': apiKey,
'Api-Username': apiUsername
}
# Этот запрос работает корректно
# Закрепить тот же пост локально
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)
После сброса статуса закрепления на false я пытаюсь закрепить пост глобально следующим образом.
# Этот запрос НЕ РАБОТАЕТ
# Закрепить ту же тему глобально
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)
Не упускаю ли я что-то очевидное, или это настоящая ошибка?
Привет, Дэвид, конечно, я написал код именно так, чтобы показать разницу между двумя запросами. Я изменю первый пост, чтобы сделать всё более понятным.
Ах, хорошо . Просматривая код, я вижу это, что вызывает ошибку 400
Думаю, вам нужно использовать pinned_globally вместо pinned-globally. Можете попробовать это и посмотреть, сработает ли? Похоже, это опечатка в нашей документации по API — я исправлю её.