How can I send a message to someone with my telegram bot using their Username

Deadly 提交于 2019-12-05 00:43:19

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"}
  1. Post one message from User to the Bot.
  2. Open https://api.telegram.org/bot<Bot_token>/getUpdates page.
  3. Find this message and navigate to the result->message->chat->id key.
  4. 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.

According to Telegram Bot API documentation you should be able to specify @channelusername.

UPDATE

There is no possibility to achieve this. I found this note in Telegram Bot API Changelog:

For this to work, the bot must be an administrator in the channel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!