Я использую curl для обновления своих публичных каналов. Такой синтаксис:
curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"
Но что chat_id
за частный канал? Это не то, что указано в частном приглашении.
Потому что теперь мы можем передавать имя пользователя канала (в формате @channelusername) вместо chat_id во всех методах (и вместо from_chat_id в forwardMessage). Но что такое @channelusername частного канала, которым я управляю?
telegram-bot
Aborruso
источник
источник
Ответы:
Я нашел способ писать в приватных каналах.
Отправить сообщение на этот канал через Bot API
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123
В ответ вы получите информацию с chat_id вашего канала.
{"ok": true, "result": {"chat": { "id": -1001005582487, "title": "Test Private Channel", "type": "channel"}, "date": 1448245538, " message_id ": 7," text ":" 123ds "}}
Теперь вы можете преобразовать канал обратно в частный (удалив ссылку на канал) и отправить сообщение прямо на этот chat_id "-1001005582487"
https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=123
источник
Сделать канал общедоступным не может пользователь, у которого существует не менее 5 общедоступных групп / каналов, поэтому ... проблема не решена. Да, вы можете отозвать один из них, но пока мы не можем получить идентификатор чата другим способом.
Кто-нибудь нашел решение для этого случая?
Обновить
Я нашел безумное решение:
Итак ... ваш идентификатор канала будет "-1001055587116". Волшебство случается :)
Решение найдено здесь: https://github.com/GabrielRF/telegram-id#web-channel-id
источник
@channel_username
, но пока он частный,@channel_username
у меня не работает! Я использовал ваше опубликованное решение и работал-100
приставка будет работать вечно, но через 4 года она все еще работает!Самый простой способ - пригласить @get_id_bot в чат, а затем ввести:
Внутри вашего чата
источник
/start @get_id_bot
а также/my_id @get_id_bot
пробел кажется важным. Добавить в@get_id_bot
качестве участника и предоставить только права на публикацию в качестве администратора. Удалите его для безопасности, как только получите удостоверение личности.Откройте частный канал, затем:
в веб- клиенте:
if
это например https://web.telegram.org/#/im?p=c1192292378_2674311763110923980then
1192292378 - это идентификатор каналана мобильном и настольном :
if
это например https://t.me/c/1192292378/31then
1192292378 - идентификатор канала (бонус: 31 - идентификатор сообщения)в Plus Messenger для Android :
WARNING
не забудьте добавить префикс -100 при использовании Telegram Bot API:if
идентификатор канала, например, 1192292378then
вы должны использовать -1001192292378источник
Вы тоже можете это сделать:
Шаг 1) Преобразуйте частный канал в публичный
Шаг 2) Задайте имя канала для этого канала
Шаг 3) затем вы можете изменить этот канал на частный
Шаг 4) Теперь отправляем ваше сообщение с использованием @ChannelName, которое вы установили на шаге 3
примечание: для шага 1 вы можете на короткое время изменить один из публичных каналов на частный.
источник
Нет необходимости преобразовывать канал в общедоступный, а затем делать его частным.
найдите идентификатор вашего частного канала. (Существует множество способов сделать это, например, см. Этот ответ SO )
curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID & text = мой образец текста"
замените xxxxxx: yyyyyyyyyyy своим идентификатором бота и замените CHAT_ID идентификатором канала, найденным на шаге 1. Таким образом, если идентификатор канала равен 1234, это будет chat_id = -1001234.
Все сделано!
источник
Идентификатор вашего частного канала - это часть XXXXXX (между «p = c» и подчеркиванием). Чтобы использовать его, просто добавьте перед ним «-100». Итак, если «XXXXXX» - это «4785444554», ваш идентификатор идентификатора частного канала «-1004785444554».
источник
А пока вы можете написать инвайт-ссылку боту @username_to_id_bot, и вы получите id:
пример:
также работает с публичными чатами, каналами и даже пользователями
источник
Я могу использовать популярный Plus Messenger на Android. Ссылка на игровой магазин: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=en.
Вы можете нажать на канал и в информации о канале под названием группы найти идентификатор канала.
Идентификаторы супергрупп и каналов будут выглядеть как 1068773197 в мессенджере plus. Для использования в API вы можете использовать префикс -100, что сделает его -1001068773197.
источник
Нашел решение для TelegramBotApi для python. Возможно, будет работать для других языков.
Я просто добавляю своего бота в приватный канал и делаю следующее:
В консоли я получаю ответ со всей необходимой мне информацией.
источник
НУЖЕН ОТВЕТ:
Вам следует добавить и сделать своего БОТА администратором ЧАСТНОГО канала , иначе
chat not found
произойдет ошибка.источник