I am using Telegram API to develop a program to join Telegram groups or channel by their links.
Methods that join group or channel (e.g. channels.joinChannel) need chat_id
or channel_id
, but I have only the links of the groups or channels (e.g. @channel_username or https://t.me/channel_username or https://t.me/joinChat/xxxxx)
How can I obtain chat_id
or channel_id
of a group or channel having its link?
P.S: I’m not the admin of these groups or channels.
2
Answers
I found the answer:
First we must use
checkChatInvite
method. It uses the chat link as input parameter and outputs the chat specifications includeschat_id
.Then we use
joinChat
method method. it uses thechat_id
got from the previous step and joins to that group or channel.Selected answer seems to be outdated. In recent versions there is checkChatInviteLink call, but it requires the chat url to start with
https://t.me/joinchat/
If you want to resolve a link like https://t.me/chatname, you can use searchPublicChat API call.
This works for me (using https://github.com/alexander-akhmetov/python-telegram):