我正在使用telepot python库,我知道当你有某人的UserID(这是一个数字)时你可以发送一条消息.我想知道是否可以在没有用户ID的情况下向某人发送消息,但只能使用他们的用户名(以'@'开头的那个),还有一种方法可以将用户名转换为UserID.
从用户向机器人发布一条消息。
打开https://api.telegram.org/bot
页面。
找到此消息,然后导航到结果->消息->聊天-> id键。
使用此ID作为[chat_id]参数,可以向用户发送个人消息。
只能向已经在您的漫游器上使用过/ start的用户发送消息。当他们启动您的漫游器时,您可以直接从他们发送/开始的消息中找到update.message.from.user_id,也可以使用相同的方法找到update.message.from.username。为了向“ @Username”发送消息,您将需要它们来启动您的机器人,然后将用户名与user_id存储在一起。然后,您可以输入用户名以在每次向他们发送消息时找到正确的user_id。
您不能使用形式的用户名向用户发送消息@username
,您只能将消息发送给您的机器人为其管理员的频道用户名。Telegram机器人api使用chat_id
标识符来发送消息。如果您想获得chat_id
用户的青睐,可以使用telegram-cli,但这并不容易,因为该项目已终止,您应该自己对其进行调试。在您的情况下,您应该执行以下命令:
> resolve_username vahid_mas
输出将是这样的:
{"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"}