如何使用用户名向我的电报机器人发送消息

ATh*_*der 11 python telegram python-telegram-bot telegram-bot

我正在使用telepot python库,我知道当你有某人的UserID(这是一个数字)时你可以发送一条消息.我想知道是否可以在没有用户ID的情况下向某人发送消息,但只能使用他们的用户名(以'@'开头的那个),还有一种方法可以将用户名转换为UserID.

小智 10

  1. 从用户向机器人发布一条消息。
  2. 打开https://api.telegram.org/bot<Bot_token>/getUpdates页面。
  3. 找到此消息,然后导航到结果->消息->聊天-> id键。
  4. 使用此ID作为[chat_id]参数,可以向用户发送个人消息。

  • 注意:第一条消息需要通过手机而不是桌面发送:( /sf/ask/3071617041/ (9认同)

Jud*_*dge 9

作为您想要了解其ID的用户,发送任意内容的消息至@JsonDumpBot。它将回复从 Telegram 收到的整个 JSON 元素,包括用户的 ID:

在此输入图像描述


小智 7

只能向已经在您的漫游器上使用过/ start的用户发送消息。当他们启动您的漫游器时,您可以直接从他们发送/开始的消息中找到update.message.from.user_id,也可以使用相同的方法找到update.message.from.username。为了向“ @Username”发送消息,您将需要它们来启动您的机器人,然后将用户名与user_id存储在一起。然后,您可以输入用户名以在每次向他们发送消息时找到正确的user_id。


Vah*_*Msm 6

您不能使用形式的用户名向用户发送消息@username,您只能将消息发送给您的机器人为其管理员的频道用户名。Telegram机器人api使用chat_id标识符来发送消息。如果您想获得chat_id用户的青睐,可以使用telegram-cli,但这并不容易,因为该项目已终止,您应该自己对其进行调试。在您的情况下,您应该执行以下命令:

> resolve_username vahid_mas
Run Code Online (Sandbox Code Playgroud)

输出将是这样的:

{"user": {"username": "Vahid_Mas", "id": "$010000006459670b02c0c7fd66d44708", "last_name": "", "peer_type": "user", "print_name": "Vahid", "flags": 720897, "peer_id": 191322468, "first_name": "Vahid", "phone": "xxxxxxx"}, "online": false, "event": "online-status", "state": -1, "when": "2017-01-22 17:43:16"}
Run Code Online (Sandbox Code Playgroud)