从python-telegram-bot中的组中获取成员信息

时间:2017-09-20 12:02:28

标签: python telegram-bot python-telegram-bot

我正在使用python进行部分电报机器人编码:

def ok(bot,update):
    print update.message


handler = MessageHandler(Filters.all,ok)
updater.dispatcher.add_handler(handler)

updater.start_polling()
updater.idle()

当我被直接发送到我的机器人时,我可以打印成员用户名:

print update.message["chat"]["username"]

结果:

print update.message

直接向机器人发送消息时:

{'delete_chat_photo': False, 'new_chat_photo': [], 'from': {'username': u'un_detectable', 'first_name': u'Sina \U0001f3a9', 'is_bot': False, 'id': 207541477, 'language_code': u'en-US'}, 'text': u'salaaam', 'entities': [], 'channel_chat_created': False, 'new_chat_members': [], 'supergroup_chat_created': False, 'chat': {'username': u'un_detectable', 'first_name': u'Sina \U0001f3a9', 'type': u'private', 'id': 207541477}, 'photo': [], 'date': 1505902164, 'group_chat_created': False, 'message_id': 297, 'new_chat_member': None}

并且在聊天字段中存在用户名,正如我所说的可以打印

但是当我在团队中发送了一个pm(我的机器人perm是管理员)时,我无法访问会员用户名

结果:

print update.message

在聊天组中发送消息时:

{'delete_chat_photo': False, 'new_chat_photo': [], 'from': {'username': u'un_detectable', 'first_name': u'Sina \U0001f3a9', 'is_bot': False, 'id': 207541477, 'language_code': u'en-US'}, 'text': u'salaaaam', 'entities': [], 'channel_chat_created': False, 'new_chat_members': [], 'supergroup_chat_created': False, 'chat': {'type': u'supergroup', 'id': -1001139540291L, 'title': u'test'}, 'photo': [], 'date': 1505902183, 'group_chat_created': False, 'message_id': 201, 'new_chat_member': None}

并且在聊天字段中,用户名存在剂量 我想当其中一个memebrs在组中写入消息时,将我的bot消息+用户名保存在数据库中 但我无法访问组成员的用户名! 有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

您的论坛需要一个公共链接,例如@AwesomeTeleBot,它可以由编辑组中的创建者进行配置。

答案 1 :(得分:0)

在私信中,chat等于user,这就是为什么您可以看到username以及chat字段的from_user。< / p>

在群组中,chat指的是群组,from_user指的是发送消息的用户。如果要记录用户的用户名,您应该在update.message.from_user.username

中找到它们