Модерация комментариев к постам в каналах

Чтобы отслеживать новые комментарии в канале через API и отвечать на них, предварительно включите опцию комментариев. Пока эта опция отключена, бот сможет читать, редактировать и удалять только старые комментарии

С помощью API MAX вы можете:

Ниже приведён один из возможных сценариев использования API MAX для комментариев в канале — вы можете придумать и реализовать свой

Как модерировать комментарии с помощью бота и API MAX

  1. Добавьте бота в канал как участника

  2. Назначьте бота администратором канала с правами на чтение, редактирование, публикацию и удаление постов. Это можно сделать:

    Готово! Теперь боту доступно чтение, редактирование и удаление всех комментариев в канале: старых и новых, своих и других участников (пользователей и ботов —  исключая редактирование комментариев. Бот может редактировать свои комментарии и те, что опубликованы от имени канала)

Пример запроса
BASH
Скопировать
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": "администраторам" } ] }'
Если потребуется, позже вы сможете изменить права бота или удалить его из канала одним из способов, представленных в этом раскрывающемся списке
  1. Подпишитесь на обновления о событиях с ботом через 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.

Пример запроса
BASH
Скопировать
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" }'
  1. Проверьте, что комментарий соответствует вашим правилам модерации

    Например, что в нём отсутствуют стоп-слова и ненормативная лексика. Правила модерации вы задаёте сами. Рекомендуем заранее ознакомить подписчиков с правилами канала

    Если комментарий нарушает правила, удалите его с помощью DELETE /messages/{messageId}/comments

    После удаления комментарий восстановить нельзя

    При успешном удалении вам вернётся Update с событием comment_deleted

Пример запроса
BASH
Скопировать
curl -X DELETE "https://platform-api2.max.ru/comments/{commentId}" \ -H "Authorization: {access_token}" \ -H "Content-Type: application/json" \
  1. Отправьте уведомление об удалении комментария и причинах. Это можно сделать с помощью POST /messages/{messageId}/comments 
Пример запроса
BASH
Скопировать
curl -X POST "https://platform-api2.max.ru/messages/{messageId}/comments" \ -H "Authorization: {access_token}" \ -H "Content-Type: application/json" \ -d '{ "text": "Комментарий был удалён за нарушение правил модерации канала", }'

ℹ️ Если у вас возникли вопросы, посмотрите раздел с ответами