Как получить правильный идентификатор канала телеграммы?

  • Если я получаю user_id по contacts.resolveUsername#bf0131c и выполняю поиск по строке channel, то получаю user_id = 0x0827ac18

Если отправить на messages.getFullChat#3b831c66, то получим ошибку PEER_ID_INVALID.

Если отправить на users.getFullUser#ca30a5b1, то получаю ошибку USER_ID_INVALID.

  • Если я ищу строку channel, используя contacts.search#11f812d8, то я получаю двух пользователей с именем пользователя ChannelBot и Channel_Bot, но не получаю имя пользователя или канала channel.

  1. Как получить идентификатор канала для использования в messages.getFullChat#3b831c66?
  2. Как получить chat_id по имени?

person SkyN    schedule 19.03.2016    source источник
comment
какую библиотеку вы используете для работы с API Telegram?   -  person Charles Okwuagwu    schedule 22.03.2016
comment
github.com/sochix/TLSharp   -  person SkyN    schedule 22.03.2016


Ответы (4)


Просто перешлите сообщение с вашего канала этому боту: (https://telegram.me/getidsbot)

person Saeed Heidarizarei    schedule 08.08.2017
comment
УВЕДОМЛЕНИЕ Идентификатор моего канала начинается с '-' - person M at; 08.09.2017
comment
Этот бот в настоящее время недоступен. Но есть альтернатива. Проверьте мой ответ ниже: stackoverflow.com/a/65946513/6736591 - person Nakamoto; 29.01.2021

Как получить chat_id для приватного канала:

Сделайте его общедоступным, дайте ему @ChannelName. Отправьте сообщение на этот канал через API вашего бота или cURL.

https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123

Он вернет идентификатор канала!

{ "ok" : true, "result" : { "chat" : { "id" : -?????????, "title" : "Test Private Channel", "type" : "channel" }, "date" : X, "message_id" : 7, "text" : "XXXXXX" } }

Теперь вы можете преобразовать канал в приватный и использовать chat_id!

person njha    schedule 27.03.2016
comment
Это не использует API, но работает. Это также работает для общедоступных каналов, просто пропустите части о том, как сделать его общедоступным, а затем снова приватным. - person njha; 28.03.2016

Идентификатор канала Telegram от @JsonDumpBot

Вы можете просто переслать сообщение на @JsonDumpBot.

Бот выдает полный json всех запросов, которые он получает.

ПРИМЕЧАНИЕ. Я не партнер, и это не мой бот.

person Nakamoto    schedule 28.01.2021

Telegram API поддерживает это напрямую. https://core.telegram.org/bots/api#available-methods. Посмотрите на метод getChat

  1. Превратите свой канал в общедоступный и создайте временно запоминающееся имя, например 'TestChannel123_temp'.
  2. Запустите следующий командлет (powershell)

    PS C:\Users\Me> Invoke-RestMethod -Method Get -Uri "https://api.telegram.org/botTOKEN_HERE/getChat?chat_id=@publicId"
    
      ok result
      -- ------
    True @{id=-YOUR_CHAT_ID; title=YOUR_CHAT_TITLE; username=YOUR_CHAT_USERNAME; type=supergroup; photo=}
    
    
    PS C:\Users\Me>
    
  3. Превратите группу обратно в частную.

  4. Отправляйте сообщения, используя идентификатор чата.

person user3613410    schedule 06.07.2018