Модерация комментариев к постам в каналах
Чтобы отслеживать новые комментарии в канале через API и отвечать на них, предварительно включите опцию комментариев. Пока эта опция отключена, бот сможет читать, редактировать и удалять только старые комментарии
С помощью API MAX вы можете:
POST /messages/{messageId}/comments— публиковать комментарии к постуPUT /messages/{messageId}/comments— редактировать свои комментарии и те, что опубликованы от имени канала, — при наличии права администратораedit. Подробнее о правахGET /messages/{messageId}/comments— получать все комментарииGET /messages/{messageId}/comments/{commentId}— получить комментарий с указанным IDDELETE /messages/{messageId}/comments— удалять комментарии. Рекомендуем заранее ознакомить подписчиков со списком стоп-слов для вашего канала
Ниже приведён один из возможных сценариев использования API MAX для комментариев в канале — вы можете придумать и реализовать свой
Как модерировать комментарии с помощью бота и API MAX
-
Добавьте бота в канал как участника
-
Назначьте бота администратором канала с правами на чтение, редактирование, публикацию и удаление постов. Это можно сделать:
- В интерфейсе мессенджера МАХ
- Через API c помощью
POST /chats/{chatId}/members/admins. В объектеpermissionsнужно передать соответствующие значенияread_all_message,edit,write,delete. Также понадобится ID канала
Готово! Теперь боту доступно чтение, редактирование и удаление всех комментариев в канале: старых и новых, своих и других участников (пользователей и ботов — исключая редактирование комментариев. Бот может редактировать свои комментарии и те, что опубликованы от имени канала)
Пример запроса
curl -X POST "https://platform-api2.max.ru/chats/{chatId}/members/admins" \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
-d '{
"admins": [
{
"user_id": "{bot_id}",
"permissions": [
"read_all_messages",
"edit",
"write",
"delete"
],
"alias": "администраторам"
}
]
}'
Если потребуется, позже вы сможете изменить права бота или удалить его из канала одним из способов, представленных в этом раскрывающемся списке
- В интерфейсе МАХ — доступно только администратору, который добавил бота в канал, и владельцу чата
- Через API MAX с помощью
POST /chats/{chatId}/members/adminsдля изменения прав иDELETE /chats/{chatId}/members/me— для удаления бота. Для это понадобится токен авторизации этого ботаaccess_tokenи ID канала
-
Подпишитесь на обновления о событиях с ботом через Webhook с помощью
POST /subscriptions. В запросе в объектеupdate_typesукажите список событий, которые вы хотите получать. Для работы с комментариями это:comment_created— новый комментарийcomment_removed— комментарий удалёнcomment_edited— комментарий изменён
После подписки события будут приходить на указанный в запросе Webhook-endpoint. События приходят в виде HTTPS
POST-запросов с объектомUpdate, который содержит идентификатор изменённого комментария в полеmessage.recipient.post_idКогда кто-нибудь из подписчиков канала прокомментирует пост, через Webhook вам вернётся
Updateс событиемcomment_createdи текстом комментария в полеbody.text.
Пример запроса
curl -X POST "https://platform-api2.max.ru/subscriptions" \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-domain.com/webhook",
"update_types": ["comment_created", "comment_removed","comment_edited"],
"secret": "your_secret"
}'
-
Проверьте, что комментарий соответствует вашим правилам модерации
Например, что в нём отсутствуют стоп-слова и ненормативная лексика. Правила модерации вы задаёте сами. Рекомендуем заранее ознакомить подписчиков с правилами канала
Если комментарий нарушает правила, удалите его с помощью
DELETE /messages/{messageId}/commentsПосле удаления комментарий восстановить нельзя
При успешном удалении вам вернётся
Updateс событиемcomment_deleted
Пример запроса
curl -X DELETE "https://platform-api2.max.ru/comments/{commentId}" \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
- Отправьте уведомление об удалении комментария и причинах. Это можно сделать с помощью
POST /messages/{messageId}/comments
Пример запроса
curl -X POST "https://platform-api2.max.ru/messages/{messageId}/comments" \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
-d '{
"text": "Комментарий был удалён за нарушение правил модерации канала",
}'
Если у вас возникли вопросы, посмотрите раздел с ответами