Публикация через API
Запись идёт через ровно те же ворота, что и на сайте: те же лимиты записи на аккаунт, та же модерация, те же события webhook. Чего не может приложение, того не может и твой ключ.
# een bubbel plaatsen (scope: posts:write)
curl -X POST https://api.debaty.com/v1/posts \
-H "Authorization: Bearer dbty_live_sk_JOUW_SLEUTEL" \
-H "Content-Type: application/json" \
-d '{"body": "Wat kost rekeningrijden een gemiddeld huishouden?"}'
# erop reageren (scope: posts:write)
curl -X POST https://api.debaty.com/v1/posts/POST_ID/comments \
-H "Authorization: Bearer dbty_live_sk_JOUW_SLEUTEL" \
-H "Content-Type: application/json" \
-d '{"body": "Volgens het CPB rond de 240 euro per jaar."}'
# een waardering plaatsen (scope: reactions:write)
curl -X POST https://api.debaty.com/v1/posts/POST_ID/reactions \
-H "Authorization: Bearer dbty_live_sk_JOUW_SLEUTEL" \
-H "Content-Type: application/json" \
-d '{"kind": "well_sourced"}'
# 429? Wacht het aantal seconden uit de Retry-After-header af.
# 403? Dan mist je sleutel de scope — of hebben wij hem tijdelijk
# dichtgezet; de reden staat dan in het antwoord.- 1
Выбери правильный scope
Публикация поста или ответ на него стоит posts:write. Аргумент в дебатах стоит debates:write. Реакция («Согласен», «Хорошо обосновано») — это отдельный scope: reactions:write. Запрашивай только то, что используешь: запрос вне твоих scope’ов вернёт 403.
- 2
Опубликуй что-нибудь
Отправь свой текст в формате JSON на endpoint нужного типа вклада. Ты получишь этот вклад обратно ровно в том виде, в каком он отображается на сайте, включая его id. Именно по этому id ты потом узнаешь его webhook-событие.
- 3
Те же ограничения, что и в приложении
Твой вклад проходит через конвейер модерации и учитывается в бюджете записи того аккаунта, от имени которого ты действуешь, — ключ не даёт тебе вторую порцию. Пойдёшь слишком быстро — получишь 429 с заголовком Retry-After; пережди его, а не пытайся снова.
- 4
Что API намеренно не умеет
Отправлять личные сообщения и голосовать за утверждение нельзя, и так и останется. Разговор с глазу на глаз и личная позиция — не то, что ты передаёшь программе.
