当前位置: 首页 > 知识库问答 >
问题:

如何使用Python Telegrame Bot获取电报用户的用户名、名字或姓氏?

刁璞
2023-03-14

我正在使用Python电报机器人创建一个电报机器人

我知道更新。消息chat_id返回用户的聊天id,但我需要知道如何获取用户的用户名或名字和/或姓氏。

我在Telegram的文档中找到了这个,但我不知道如何使用它(我尝试了bot.getChat(update.message.chat\u id),但没有结果)

共有2个答案

宰烈
2023-03-14

您可以使用json文件并访问用户名、ID等信息。您可以自己打印此文件以获取有关json文件的信息。请参见下面的示例

# pip install python-telegram-bot==12.0.0
from telegram.ext import Updater
from telegram.ext import CommandHandler
updater = Updater('token')

def start(bot, update):
    # print('json file update : ' ,update)
    # print("json file bot : ', bot)
    chat_id = update.message.chat_id
    first_name = update.message.chat.first_name
    last_name = update.message.chat.last_name
    username = update.message.chat.username
    print("chat_id : {} and firstname : {} lastname : {}  username {}". format(chat_id, first_name, last_name , username))
    bot.sendMessage(chat_id, 'text')

start_command = CommandHandler('start',start)
updater.dispatcher.add_handler(start_command)
updater.start_polling()
updater.idle()
司马萧迟
2023-03-14

有关用户的所有信息(如用户名、id、名字/姓氏和个人资料照片)可从telegram获得。用户对象。你可以用电报很容易地得到它。消息

user = update.message.from_user
print('You talk with user {} and his user ID: {} '.format(user['username'], user['id']))
 类似资料:
  • 嗨,我正在尝试建立一个网站登录系统,用户可以使用电报登录。我希望实现此工作流: < li >用户选择通过电报登录/注册。 < li >用户输入他们的用户名(@ExampleJoe)。 < li >通过我的电报机器人(@ExampleBot)向他们发送6位验证码。 < li >用户将收到的6位数字代码输入到我的网站,并被允许进入。 我在步骤 2-3 中遇到了问题,我的机器人可以仅使用其用户名向他们发

  • 我们的系统使用Google Oauth来允许用户从Google帐户注册。然而,对于一些用户,我们只能得到电子邮件和头像,而不是名字和姓氏。 Oauth Google控制台中的设置添加了以下作用域: 电子邮件 配置文件 openid /auth/contacts.readonly 使用以下范围进行请求 < Li > https://www . Google APIs . com/auth/useri

  • 我有一个Web角前端,API网关受Cognito和Lambda保护,用于其他业务用例。登录和授权工作正常。我正在使用AWS Javascript SDK进行授权。像https://s3.amazonaws.com/solutions-reference/mobile-backend/latest/mobile-app-backend.pdf 在我的lambda中,我需要获得其他用户的信息,如名字、

  • 我对Firebase和Swift很陌生,在查询时遇到了一些麻烦。因此,基本上我想做两件事: 查询我的用户,只找到那些在他们的名称(或电子邮件地址)中包含特定字符串的用户,并将他们添加到数组中。 获取我的所有用户并将他们添加到数组中。 正如您所看到的,我正在使用Firebase的简单登录(稍后我也想添加Facebook登录),并且我正在按用户的uid存储我的用户。 我的规则文件的一部分如下所示: 所

  • 我一直在使用Tweepy通过流媒体API收集某个地区的推文,我只收集了一条推文的纬度/经度,但我想添加更多,我不确定具体是什么。我使用这段代码来获取lat/long值: 我想把具体的用户名(@handle)和Tweet创建的时间打印到文本文件中。我不确定是否应该在< code > if decoded . get(' coordinates ',None)not None:循环中这样做。

  • 问题内容: 我有一个如下的mysql表: 我基本上想获得一个单独的用户等级,而不选择所有用户。我只想通过id选择一个用户,并获得用户排名,该排名取决于他们所获得的积分。 例如,以ID 3选择等级2返回tom。 干杯 ef 问题答案: 密集等级: