← Вернуться к списку тем

Обработка DATA котейнера

Здравствуйте, у меня есть такой код против китайских спамеров (только иероглифов побольше у меня)
// против Китайского спама
$update = json_decode(file_get_contents('php://input'));
if(preg_match("/(微|信|群|电|报|群|土|豆|群|活|粉|非|小|号|关|微|信|号|咨|询)/i", $update->message->text)){
apiRequest('deleteMessage', [
       'chat_id'=>$update->message->chat->id,
       'message_id' => $update->message->message_id
     ]);
}

и все нормально работает когда спамеры вставляют такие посты НО когда они ПЕРЕСЫЛАЮТ такое сообщение то бот его не удаляет. говорят такое пересланое сообщение надо по особому обрабатывать. подскажите как это сделать?

Ответы


  • iMakeBots [09.03.2020 в 17:28 → Грачик Абдулошвили]
    Надо тестить - попробуйте переслать сообщение в тестовый чат - посмотрите какие данные прилетают.
    forward_from, 
    forward_from_chat, 
    forward_from_message_id, 
    forward_signature, 
    forward_sender_name, 
    forward_date

    Но насколько я уже с этим сталкивался, то пересылают их боты, практически всегда, и в их username нет слово bot (поэтому кажется то это обычные пользователи), этих ботов добавляют "живые" пользователи заранее.

    Бот по расписанию пересылает сообщение из какого-нибудь места в группу, а так как ваши боты-админы не видят сообщения отправленные другими ботами - то и не происходит удаление этих сообщений.

    Для того чтобы эти сообщения детектить - надо поднимать бота как пользователя (Telegram CORE API).