How can I send a message to someone with my telegram bot using their Username
- Post one message from User to the Bot.
- Open
https://api.telegram.org/bot<Bot_token>/getUpdates
page. - Find this message and navigate to the result->message->chat->id key.
- Use this ID as the [chat_id] parameter to send personal messages to the User.
It is only possible to send messages to users whom have already used /start on your bot. When they start your bot, you can find update.message.from.user_id straight from the message they sent /start with, and you can find update.message.from.username using the same method.In order to send a message to "@Username", you will need them to start your bot, and then store the username with the user_id. Then, you can input the username to find the correct user_id each time you want to send them a message.
You can't send message to users using their username that is in form of @username
, you can just send messages to channel usernames which your bot is administrator of it. Telegram bot api uses chat_id
identifier for sending messages. If you want to achieve chat_id
of users, you can use telegram-cli, but it's not easy at all because that project is discontinued and you should debug it yourself.in your case you should do following command:
> resolve_username vahid_mas
and the output will be something like this:
{ "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"}