如何使用我的电报机器人使用他们的用户名向某人发送消息
How can I send a message to someone with my telegram bot using their Username
我正在使用 telepot python 库,我知道当你有某人的 UserID(这是一个数字)时,你可以发送消息。
我想知道是否可以在没有用户 ID 而只使用用户名(以“@”开头的用户名)的情况下向某人发送消息,此外,如果有一种方法可以将用户名转换为用户 ID。
您不能使用 @username
形式的用户名向用户发送消息,您只能将消息发送到您的机器人是其管理员的频道用户名。 Telegram 机器人 api 使用 chat_id
标识符发送消息。如果你想达到chat_id
的用户,你可以使用telegram-cli,但是一点也不容易,因为那个项目已经停产了,你得自己调试。
在您的情况下,您应该执行以下命令:
> resolve_username vahid_mas
输出将是这样的:
{
"user": {
"username": "Vahid_Mas",
"id": "0000006459670b02c0c7fd66d44708",
"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"
}
只能向已经在您的机器人上使用 /start 的用户发送消息。当他们启动您的机器人时,您可以直接从他们发送的消息中找到 update.message.from.user_id /start,您可以使用相同的方法找到 update.message.from.username。
为了向“@Username”发送消息,您将需要它们来启动您的机器人,然后使用 user_id 存储用户名。然后,您可以在每次要向他们发送消息时输入用户名以找到正确的 user_id。
- Post 从用户到机器人的一条消息。
- 打开
https://api.telegram.org/bot<Bot_token>/getUpdates
页面。
- 找到这条消息并导航到结果->消息->聊天->id 键。
- 使用此 ID 作为 [chat_id] 参数向用户发送个人消息。
作为你想知道ID的用户,发送任意内容的消息到@JsonDumpBot
。它将回复从 Telegram 收到的整个 JSON 元素,包括用户 ID:
使用互联网上可用的其他电报版本是完全不安全的,但我看到 Telegram Plus 可以在他们的个人资料中向您显示用户的 chat_id,即使你没有他们的联系方式。
提取该特定用户的 chat_id 的另一种方法是您拥有该帐户的 phone 号码,将其保存为您的联系人,然后将其共享给 this 机器人。自己编写代码很容易,但如果您想接收 chat_id.
,您也可以将该用户的内容转发给此机器人
urmurmur 也提到了另一种方式。我还没有检查过,但似乎很有趣。
我正在使用 telepot python 库,我知道当你有某人的 UserID(这是一个数字)时,你可以发送消息。 我想知道是否可以在没有用户 ID 而只使用用户名(以“@”开头的用户名)的情况下向某人发送消息,此外,如果有一种方法可以将用户名转换为用户 ID。
您不能使用 @username
形式的用户名向用户发送消息,您只能将消息发送到您的机器人是其管理员的频道用户名。 Telegram 机器人 api 使用 chat_id
标识符发送消息。如果你想达到chat_id
的用户,你可以使用telegram-cli,但是一点也不容易,因为那个项目已经停产了,你得自己调试。
在您的情况下,您应该执行以下命令:
> resolve_username vahid_mas
输出将是这样的:
{
"user": {
"username": "Vahid_Mas",
"id": "0000006459670b02c0c7fd66d44708",
"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"
}
只能向已经在您的机器人上使用 /start 的用户发送消息。当他们启动您的机器人时,您可以直接从他们发送的消息中找到 update.message.from.user_id /start,您可以使用相同的方法找到 update.message.from.username。 为了向“@Username”发送消息,您将需要它们来启动您的机器人,然后使用 user_id 存储用户名。然后,您可以在每次要向他们发送消息时输入用户名以找到正确的 user_id。
- Post 从用户到机器人的一条消息。
- 打开
https://api.telegram.org/bot<Bot_token>/getUpdates
页面。 - 找到这条消息并导航到结果->消息->聊天->id 键。
- 使用此 ID 作为 [chat_id] 参数向用户发送个人消息。
作为你想知道ID的用户,发送任意内容的消息到@JsonDumpBot
。它将回复从 Telegram 收到的整个 JSON 元素,包括用户 ID:
使用互联网上可用的其他电报版本是完全不安全的,但我看到 Telegram Plus 可以在他们的个人资料中向您显示用户的 chat_id,即使你没有他们的联系方式。
提取该特定用户的 chat_id 的另一种方法是您拥有该帐户的 phone 号码,将其保存为您的联系人,然后将其共享给 this 机器人。自己编写代码很容易,但如果您想接收 chat_id.
,您也可以将该用户的内容转发给此机器人urmurmur 也提到了另一种方式。我还没有检查过,但似乎很有趣。