Как различать пользователь пишущих от лица канала или как анонимный администратор группы?

Ссылка скопирована
1 ответ

Я делаю игрового бота телеграм. Я добавляю пользователей по айди в базу данных. А как быть с теми кто пишет от лица канала или как анонимный администратор группы? При запросе айди или никнейма у них всех выдается один и тот же. Многие другие боты спокойно отличают их добавляют в свои базы. А я никак не могу понять. Использую sqlite3 и telebot.

Дополнительно:

null

  • что такое SqL3 ?
  • Казалось бы - при чем тут mysql...
  • maksam07, sqlite3
  • В общем, помог только переход на aiogram. При запросе from_user.id у сообщения, которое не было отправлено напрямую от пользователя, а от чего-то лица, выдается айди ботов-пустышек @GroupAnonymousBot и @Channel_Bot соответственно. А у этой библиотеки есть такой замечательный параметр, как sender_chat.id, который выдает, если сообщение было от анонимного администратора, то айди группы, если от канала, то айди канала. Иначе, если сообщение было просто от пользователя, то он выдаёт None. Таким образом, с помощью оператора можно задать, например, в переменную айди отправителя.

    if message.sender_chat:         userid = message.sender_chat.id     else:         userid = message.from_user.id

    if message.sender_chat: userid = message.sender_chat.id else: userid = message.from_user.id

    Всем добра и позитива!

    Ответы:

    -кто пишет от лица канала
    -при запросе айди или никнейма у них всех выдается один и тот же

    Причинно-следственная связь, думаю, тут очевидна. В твоей бд или либе ничего ты не исправишь. Они пишут от чата. Соответсвенно и айди чата будет

    • как раз дело в том что они выдают не свой айди и юзернейм а данные бота @Channel_Bot или @GroupAnonymousBot. возможно мне нужно отказаться от telebot и перейти на другую ...
    • volosogriz, ну, тот же aiogram тоже не покажет тебе его реальный айди. Да и в целом вряд ли кто покажет, т.к. если б была такая возможность - уже было бы много кастомных клиентов ТГ, которые могли бы палить кто именно пишет. А я таких не видел.
    • я это понимаю. я имею ввиду не про айди человека который от его лица пишет, а айди канала. у меня вопрос как мне их различить. по каким параметрам. не важно если разные люди пишут от лица одного канала, я хочу чтобы на этот канал был в базе данных и его можно было бы отличить от других каналов.
    • volosogriz, вообще у aiogram есть метод message.from_user.id, позволяет получить айди написавшего. Я конечно редко сталкивался с проблемой, подобной твоей, но если не ошибаюсь, у меня он в случае сообщения от чата выдавал айди этого чата. Впрочем, можешь попробовать или поискать у телебота аналогичные методы
    • Спасибо! Помогло sender_chat.id у aiogram.
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Чтобы различать пользователей, пишущих от лица канала от анонимных администраторов группы, можно использовать различные методы и инструменты, в зависимости от платформы или приложения, которые вы используете.

    1. Использование специальных тегов или меток: Некоторые платформы позволяют администраторам группы или канала добавлять специальные теги или метки к их сообщениям, чтобы отличать их от сообщений обычных пользователей. Таким образом, можно легко определить, кто именно написал определенное сообщение.

    2. Использование цветовой схемы: Другой способ различать пользователей - это использовать различные цвета или стили для сообщений администраторов группы или канала. Например, сообщения администраторов могут быть выделены другим цветом или иметь специальное оформление, чтобы их легче было заметить.

    3. Использование иконок или аватарок: Также можно использовать специальные иконки или аватарки для администраторов группы или канала, чтобы отличать их от обычных пользователей. Например, администраторы могут иметь специальную звездочку или значок рядом с их именем или аватаркой.

    4. Использование специальных команд или ключевых слов: Некоторые платформы позволяют администраторам группы или канала использовать специальные команды или ключевые слова для отличия их сообщений от сообщений обычных пользователей. Например, администраторы могут использовать команду "/admin" перед своим сообщением, чтобы показать, что они пишут от лица администратора.

    Приведенные выше способы могут быть использованы для различения пользователей, пишущих от лица канала от анонимных администраторов группы. Вы можете выбрать один или комбинировать несколько из них, чтобы сделать процесс идентификации более удобным и эффективным.

    // Пример использования тега <pre lang="php"> для подсветки синтаксиса PHP кода
    function differentiateUsers($message) {
        if (isAdmin()) {
            return "<span style='color: blue'>Администратор: </span>" . $message;
        } else {
            return "<span style='color: green'>Пользователь: </span>" . $message;
        }
    }

    // Пример использования тега <pre lang="php"> для подсветки синтаксиса PHP кода function differentiateUsers($message) { if (isAdmin()) { return "<span style='color: blue'>Администратор: </span>" . $message; } else { return "<span style='color: green'>Пользователь: </span>" . $message; } }

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно