Как отправить сообщение в Телеграмме по id

Я использую python-telegram-bot для отправки сообщений пользователям (в личных сообщениях). В документации написано этот бот может отправить сообщение пользователю, зная его channel_id или username .

Но по chat_id сообщение отправляется, а по имени пользователя я получаю ошибку telegram.error.Bad Request: Chat not found `

user10898133 11 Окт 2019 в 12:07

2 ответа

Лучший ответ

def save_user_id(bot, update): username = get_username(update) tg_user, created = YourModel.objects.get_or_create(username=username, first_name=update.message.from_user.first_name, telegram_user_id=update.message.from_user.id)

Поэтому позже вы можете использовать имя пользователя для отправки сообщения:

Забыл добавить get_username функцию. Это просто:

def get_username(update): username = update.message.from_user.username

Но я бы порекомендовал расширить его для ваших нужд, потому что некоторые пользователи не настроили свои имена пользователей

Oleksii Dubniak 11 Окт 2019 в 09:40

TelegramBot + Python: пересылаем сообщения в Ваш чат

Здесь это цитируется

Вы должны отправить название канала, а не имя пользователя здесь.

Источник: question-it.com

Как отправить сообщение в телеграмме по id

Создаем канал в Telegram и отправляем в него сообщение через PHP/Laravel просто и легко

  • 10/12/2021
  • Chebukin Pavel
  • 3322 просмотров
  • 0 комментариев

Создаем канал в Telegram и отправляем в него сообщение через PHP/Laravel просто и легко

Многие проекты используют нотификацию. Некоторые отправляют сообщения на почту, другие в Telegram, Slack и прочее. Сообщения — отличный вариант сообщить о новом заказе, комментарии, материале на сайте или происхождении какого-то события. Для многих вариантов используются библиотеки. Но вот для текстового сообщения в телеграм такое не нужно.

Достаточно открыть прямую ссылку с нужными параметрами и сейчас я покажу как это сделать, начиная от создания самого канала и до отправки сообщения.

Еще по теме:  Как понять что тебя игнорят в Телеграмме

Создаем канал в который бот будет слать сообщение

Почему канал, а не напрямую человеку? Потому что вам не нужно будет переделывать алгоритм, если нотификации должно видеть несколько человек. Не понадобится лезть в код добавляя или удаляя участников. Вы все это сможете сделать в самом телеграмме будучи администратором.

Чтобы создать канал, идем в левое меню, со значком трех полосок и нажимаем «Создать канал»

Задаем название канала, выбираем тип «Публичный» и вводим ссылку по которой он будет доступен. Канал можно позже закрыть, но это самый простой вариант пригласить бота сразу.

Создаем бота

/newbot

После этого бот вам должен ответить сообщением:

Alright, a new bot. How are we going to call it? Please choose a name for your bot.

На которое вы вводите название бота, в моем случае пусть будет MyLaravelClub. В ответ бот спросит техническое имя бота. Оно должно быть с приставкой bot в конце, а значит я просто отвечаю сообщением MyLaravelClubBot.

Если вы не попали на уже существующее имя, бот ответит вам сообщением:

Done! Congratulations on your new bot. You will find it at t.me/MyLaravelClubBot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you’ve finished creating your cool bot, ping our Bot Support if you want a better username for it.

Just make sure the bot is fully operational before you do this.

Use this token to access the HTTP API:
nnnnnnnn:MMMMMMMMMM
Keep your token secure and store it safely, it can be used by anyone to control your bot.

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

В этом сообщении nnnnnnnn:MMMMMMMMMM это токен обращения к боту и он нам, как раз будет нужен. Переходим по указанной в сообщении ссылке, в моем случае это t.me/MyLaravelClubBot. В вашем случае будет имя вашего бота. Вместо отправки сообщения будет кнопка с надписью Запустить. Ее и нажимаем, запуская бота.

Еще по теме:  Как сделать так чтобы человек не видел аватарку в Телеграмме

Приглашаем бота на канал и получаем идентификатор по которому будем писать от имени бота.

Переключаемся в телеграмме на наш канал, жмем на три точки в правом верхнем углу и жмем пункт «Добавить участников». После этого вводим имя нашего бота, это MyLaravelClubBot, в моем случае.

Телеграм предупредит что бота можно добавить только как администратора, на что соглашаемся, нажимая Назначить.

Следующий экран спрашивает какие права управления каналом стоит назначить боту. В нашем случае это не важно, оставляем как предложено по умолчанию.

Нажимаем Сохранить.

Самое время, если сообщение на канале от бота личные и никто не должен их видеть кроме тех кого вы сами пригласили на канал, то меняем тип канала в настройках(правый верхний угол — три точки). Меняем с Публичный на Частный и жмем кнопку Сохранить. Токен бота у нас есть, нужно теперь получить ID нашего канала. На нашем канале пишем сообщение от себя, любого содержимого, например «hello, world!».

«channel_post»:,»chat»:,»date»:1639177800,»text»:»hello, world!»>>

В этом сообщении нас интересует «id»:-1001111111111. Где число вместе со знаком и будет искомым идентификатором нашего канала. Теперь у нас есть все что нужно, а отправить сообщение можно прямой ссылкой вида:

https://api.telegram.org/bot/sendMessage?chat_id=text=Привет%20мир

После перехода по ссылке видим сообщение от бота в нашем канале:

Отправляем сообщение из PHP и/или Laravel

Теперь все просто, осталось лишь в нужном куске кода вызвать переход по ссылке. Сделать это просто следующим образом:

//ID канала куда отправляем $idChannel = ‘-100111111111’; //токен бота которым отправляем сообщение $botToken = ‘nnnnnnnnn:MMMMMMMMMM’; //наше импровизированное сообщение $message = «Статистика заказов за сутки: » .» nnВсего: заказов 99″; //кодируем его, чтобы сохранить переносы строк $message = urlencode($message); //после этого отправляем try < file_get_contents(«https://api.telegram.org/bot$botToken/sendMessage?chat_id=$idChannel>

Еще по теме:  Как вернуть деньги за Телеграмм премиум который ты подарил другу

Отзывы

Пока нет комментариев

Для того чтобы оставить комментарий, авторизуйтесь.

Источник: my-laravel.club

Как получить ID группы или чата в Telegram

как узнать chat id в telegram

Получение chat_id в Telegram возможно исключительно сторонними средствами, так как в целях безопасности эта функциональность была удалена из мессенджера.

Способ 1: Get My ID

Для получения идентификатора группы можно воспользоваться ботами, например Get My ID. Как и большинство подобных решений, это одинаково работает как в настольном варианте приложения, так и в версиях для Android и iOS. В примере далее мы воспользуемся именно клиентом для ПК.

  1. Запустите программу, перейдите к поисковой строке над списком чатов и введите в неё запрос getmyid_bot. Ниже появятся сгенерированные результаты, кликните по отмеченному на скриншоте. как узнать chat id в telegram-1
  2. Далее нажмите «Запустить». как узнать chat id в telegram-2
  • После начала работы с ботом он отобразит ваш пользовательский ID и соответствующее значение для чата с ним – если это сообщение пришло, всё функционирует нормально. как узнать chat id в telegram-3
  • Для получения chat ID конкретной беседы понадобится переслать сюда любое сообщение из него. Откройте нужный диалог, найдите требуемый элемент, кликните по нему правой кнопкой мыши и выберите пункт «Переслать сообщение». как узнать chat id в telegram-4
  • В окне выбора адресатов укажите Get My ID. как узнать chat id в telegram-5Откроется диалог с ботом – здесь нажмите на кнопку отправки сообщения. как узнать chat id в telegram-6
    Для определения точного идентификатора понадобится прислать боту ещё и ссылку-приглашение на целевой чат. Чтобы получить её для публичных чатов, перейдите к соответствующему диалогу и нажмите на три точки справа, как узнать chat id в telegram-7

    Способ 2: UserInfo

    Следующий бот, решающий поставленную задачу, называется UserInfo.

    Это решение функционально ничем не отличается от приведённого выше, остальные похожие инструменты обладают подобными возможностями.

    Источник: lumpics.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...