Как видно, параметры тела запроса позволяют удалять созданные пользователем сообщения в рамках того же запроса, в отличие от ручного удаления учетных записей через админ-панель, где сообщения приходится удалять заранее.
Однако при выполнении этого запроса я получаю ошибку 403 (доступ запрещен), несмотря на то, что ключ API имеет глобальную область действия, а пользователь — system:
{
"errors": ["You are not permitted to view the requested resource."],
"error_type": "invalid_access"
}
Работает ли это, если изменить значения настроек, упомянутых в руководстве? Значения по умолчанию могут блокировать удаление пользователей. Не уверен на 100%.
Я не уверен в деталях пользователя, которого вы пытаетесь удалить, но ошибка, которую вы видите, скорее всего, возникает из-за того, что не выполняется одно или несколько из следующих условий.
Скорее всего, проблема в блоке else. И да, я согласен, сообщение об ошибке могло бы быть менее расплывчатым .
Точно, @selase! Похоже, у моего пользователя больше постов, чем User::MAX_STAFF_DELETE_POST_COUNT, и к тому же некоторые из них старше, чем SiteSetting.delete_user_max_post_age
delete_user_max_posts: должно было быть переименовано в delete_user_self_max_post_count с момента публикации статьи. По умолчанию установлено в 1.
Максимальное количество постов, которое может иметь пользователь, чтобы разрешить самостоятельное удаление учётной записи. Установите значение -1, чтобы отключить самостоятельное удаление учётной записи.
delete_user_max_post_age установлено в 60 (по умолчанию), и у пользователя есть посты старше 60 дней.
Не разрешать удаление пользователей, первый пост которых старше (x) дней.
delete_all_posts_max установлено в 15 (по умолчанию), а у моего пользователя 12 постов.
Максимальное количество постов, которое можно удалить за один раз с помощью кнопки «Удалить все посты». Если у пользователя больше постов, чем это значение, все посты нельзя удалить сразу, и пользователя нельзя удалить.
После того как я устранил ограничения, мне удалось удалить своего пользователя через вызов API.
{"deleted":true}
И, возможно, в документации API тоже стоит упомянуть это требование, нет?