从 python-telegram-bot 中的组获取成员信息
get member information from group in 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"]
结果:
打印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}
并且在聊天字段中用户名存在并且正如我所说可以打印
但是当我在群组中收到私信时(我的机器人权限是管理员)我无法访问成员用户名
结果:
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 他消息 + 用户名保存在数据库中
但我无法访问组成员的用户名!
有人可以帮助我吗?
您的群需要publiclink,如@AwesomeTeleBot
,可由创建者在编辑群中配置。
在私信里,chat
等于user
,所以可以看到chat
的username
,还有from_user
的字段.
在一个群中,chat
表示该群,from_user
表示发出消息的用户。如果你想记录用户的用户名,你应该在 update.message.from_user.username
.
中找到它们
我正在使用 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"]
结果:
打印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}
并且在聊天字段中用户名存在并且正如我所说可以打印
但是当我在群组中收到私信时(我的机器人权限是管理员)我无法访问成员用户名
结果:
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 他消息 + 用户名保存在数据库中 但我无法访问组成员的用户名! 有人可以帮助我吗?
您的群需要publiclink,如@AwesomeTeleBot
,可由创建者在编辑群中配置。
在私信里,chat
等于user
,所以可以看到chat
的username
,还有from_user
的字段.
在一个群中,chat
表示该群,from_user
表示发出消息的用户。如果你想记录用户的用户名,你应该在 update.message.from_user.username
.