Telegram 中普通用户和机器人之间的区别

Differentiation between normal users and bots in Telegram

假设我在 Telegram 中创建了一个群组,想开发一个机器人并将其作为管理员添加到群组中。现在,假设这个机器人被编程为向加入该组的用户发送欢迎消息。但是,我们只想将欢迎消息发送给实际的人类用户,而不是可能已添加到该组的其他机器人。这在技术上可行吗?我的意思是,当我开发我的管理机器人时,我怎样才能让它能够区分用户和机器人?有什么问题吗?

当新用户加入您的群组时,您的机器人会获得一个 JSON 对象:

{
    message_id: 8,
    from: {
        id: <user_id>,
        is_bot: false,
        first_name: 'A',
        last_name: 'B',
        username: '<adder_username>'
    },
    chat: {
        id: <chat_id>,
        title: 'test',
        type: 'supergroup'
    },
    date: 1535443550,
    new_chat_participant: {
        id: <user_id>,
        is_bot: false,
        first_name: 's',
        username: '<added_username>',
        language_code: 'en-us'
    },
    new_chat_member: {
        id: <user_id>,
        is_bot: false,
        first_name: 's',
        username: '<added_username>',
        language_code: 'en-us'
    },
    new_chat_members: [{
        id: <user_id>,
        is_bot: false,
        first_name: 's',
        username: '<added_username>',
        language_code: 'en-us'
    }]
}

检查 msg.new_chat_participant.is_bot 您可以确定它是真实用户还是机器人。