Как получить chat id telegram бота
Перейти к содержимому

Как получить chat id telegram бота

  • автор:

Как получить chat_id telegram?

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

  • Вопрос задан более двух лет назад
  • 651 просмотр

1 комментарий

Простой 1 комментарий

Простой способ узнать чат-айди закрытой группы в Телеграме

Бывают ситуации, когда нужно сделать телеграм-бота для закрытой группы. В этом случае сложно узнать чат-айди, потому что стандартные средства типа телеграм-бота @getidsbot — не работают (по крайней мере у меня не получилось).

Мне помог этот способ:

  1. Зайти в веб-версию Телеграмма.
  2. Открыть нужную группу.
  3. В адресной строке скопировать из урла номер после решетки вместе с минусом — https://web.telegram.org/z/#-xxxxxxxxxx.
  4. Добавить после минуса число 100.
  5. Готово. Вы получили чат-айди закрытой группы.

Уведомления в Телеграм

Общая логика настройки уведомлений о новых обращениях и ответов клиентов описана тут. Другие инструкции:

  • звуковые и браузерные уведомления(по 2 минуты на выполнение)
  • уведомления на почту(2 минуты на выполнение)
  • уведомления в Slack(10 минут на выполнение)
  • уведомления в Mattermost(5 минут на выполнение)
  • уведомления в Discord(5 минут на выполнение)

Для получения уведомлений в Телеграме необходимо создать Телеграм-бота и настроить правила в Омнидеске. Видеоверсия инструкции по настройке тут.

Создание бота в Телеграме

Создайте отдельного бота в Телеграме для отправки через него уведомлений. Вы сможете использовать одного и того же бота для отправки уведомлений разным сотрудникам и в разные группы. Обратите внимание, что использовать для уведомлений телеграм-бота, который у вас подключен как канал для связи с клиентами, не получится.

1. Создайте бота в Телеграме. Для этого:

a) в строке «Поиск» введите @BotFather или перейдите по ссылке t.me/botfather;

б) нажмите кнопку «Start» / «Запустить» или наберите команду /start;

в) выберите команду /newbot в ответном сообщении от бота или в списке команд в меню;

г) укажите имя вашего нового бота латиницей, а затем — его юзернейм, который должен заканчиваться на «bot» слитно или через нижнее подчеркивание.

После успешного создания бота вы получите API-токен бота, который понадобится для настройки правил в Омнидеске.

Учтите, что Telegram не позволяет боту писать в адрес пользователя первым. Чтобы получать от бота уведомления в личную переписку, обязательно отправьте ему хотя бы одно сообщение и не забудьте попросить об этом коллег, для которых настраиваете уведомления. Найти бота можно через поиск или перейдя по ссылке в сообщении от @botfather.

2. Для настройки уведомлений также потребуется Chat ID.

На этом этапе решите, кому бот будет отправлять уведомления: отдельному пользователю или в группу.

Получить Chat ID можно несколькими способами:

b150e92d3efbd64e053e17a6cb0e9ad1.png

  • В случае с пользователем и обычной группой Chat ID совпадает с User ID или, соответственно, с Group ID. Поэтому можно просто взять его из строки браузера в веб-клиенте Телеграма A-версии. После авторизации откройте нужную группу, чат с коллегой или «Saved Messages», если настраиваете уведомления для самого себя, и скопируйте цифры после символа #. Способ не подойдет для супергрупп;
  • спросить у бота, например, у @username_to_id_bot или @myidbot. Обратите внимание, что эти боты, никак не связанные с Омнидеском, так что мы не можем гарантировать их работоспособность;
  • через json-ответ API Телеграма.

Последний способ опишем подробнее. Перейдите по ссылке https://api.telegram.org/bot [токен_бота] /getUpdates (переменную [токен_бота] вместе с квадратными скобками замените на API-токен созданного вами бота). Вы должны получить ответ: «<"ok":true,"result":[]>».

а. Для получения ID чата с пользователем отправьте в адрес созданного вами бота несколько сообщений. Затем вернитесь к вкладке, открытой на предыдущем шаге по ссылке https://api.telegram.org/bot [токен_бота] /getUpdates, обновите страницу и скопируйте полученный id.

ed6c26a36b11583b9acd838920da8ec3.png

б. ID группового чата отобразится по ссылке https://api.telegram.org/bot [токен_бота] /getUpdates сразу после добавления бота в группу. Обновите страницу и скопируйте полученный id. На ID чата с группой указывает знак минус (“-”) перед цифровым кодом.

86996f4c8e174d78ce7b03b1fc08a9e7.png

Создание правил в Омнидеске

3. Создайте в Омнидеске правила, которые будут отправлять уведомления в Телеграм. Перейдите в аккаунт администратора — раздел «Каналы» — подраздел «Правила».

а. Для получения уведомлений в Телеграм о поступлении новых обращений создайте правило для входящих обращений:

8f685abcdc492c94eb46a933e942a4cd.png

В блоке «производить действие» выберите вариант «Выполнить вебхук», затем укажите метод POST. В поле «URL для отправки запроса» вставьте следующую ссылку, заменив в ней переменную [токен_бота] вместе с квадратными скобками на API-токен созданного вами бота:

https://api.telegram.org/bot[токен_бота]/sendMessage

Ниже выберите вариант «Кастомный запрос» в формате JSON и добавьте код запроса с нужными вам переменными. Переменную [полученный_id] вместе с квадратными скобками замените на ID пользователя или группы, который вы получили в пункте 2.

Уведомление с использованием приведенного выше кода будет выглядеть так:

078a51f89bec55885fd688e01fa9459a.png

б. Для получения уведомлений в Телеграм о поступлении новых ответов в обращениях и чатах создайте правило для измененных обращений:

cf8268cd0980bb8b01d0e40182fa0bec.png

В блоке «производить действие» выберите вариант «Выполнить вебхук», затем укажите метод POST. В поле «URL для отправки запроса» вставьте следующую ссылку, заменив в ней переменную [токен_бота] вместе со скобками на API-токен созданного вами бота:

https://api.telegram.org/bot[токен_бота]/sendMessage

Ниже выберите вариант «Кастомный запрос» в формате JSON и добавьте код запроса с нужными вам переменными. Переменную [полученный_id] вместе с квадратными скобками замените на ID пользователя или ID группы, который вы получили в пункте 2.

Уведомление с использованием приведенного выше кода будет выглядеть так:

6fbf183df7a0795ff8d2caa6de2f4577.png

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

PRO подсказка: В новых чатах тема обращения формируется на основе первого сообщения от пользователя:

  • иногда такое сообщение может быть довольно длинным и ломать верстку вашего уведомления;
  • текст самого сообщения в таком случае будет дублировать тему.

Чтобы избежать этого, лучше создавать отдельные правила для входящих обращений по каналу email и по синхронным каналам, а в тексте кода запроса для уведомления о новых чатах не использовать переменную [case_subject].

Дополнительные возможности

4. Добавьте в код вебхука переменные

Вы можете добавлять в уведомления нужные вам данные из Омнидеска (группу обращения, телефон пользователя, компанию, текст заметки и т. п.), чтобы уведомления максимально отвечали вашим задачам. Кроме того, вы также можете самостоятельно выбрать отображение элементов, которое вам больше подходит.

Пример кода и отображения такого уведомления в Telegram:

< "chat_id": [полученный_id], "parse_mode": "HTML", "text": "[last_message|text]\n\n[user_full_name] написал в обращении #[case_number]: [case_subject]\n\nПочта: [user_email]\nГруппа: [case_group]\nПриоритет: [case_priority]\n\nОтветить на обращение", "disable_web_page_preview": "True" >

8ab45ae6c43da1bb6fae162615be172e.png

5. Используйте дополнительные параметры в коде вебхука:

а) “disable_notification” — отправляет «тихие» уведомления, которые не будут отвлекать вас от основных задач;

б) «protect_content» — отключает возможность копировать или пересылать уведомления;

в) “message_thread_id” — отправляет уведомления в указанную тему супергруппы. Чтобы получить ID нужной темы, нажмите на название темы и скопируйте цифры после «/». К примеру, для https://t.me/supergroupname/10 message_thread_id равен 10;

г) [переменная|text] — преобразует html-форматирование в простой текст;

д) [переменная|limit100] — обрезает уведомление до указанного количества символов. Учтите, что Telegram не позволяет отправлять сообщения длиной более 4096 символов в кодировке UTF-8.

Пример кода с использованием перечисленных параметров:

В коде замените [полученный_id_темы] на ID вашей темы и укажите нужное вам количество символов.

6. Добавляйте собственные кнопки

К примеру, можно быстро переходить к профилю пользователя в Омнидеске, в вашу базу знаний, к списку всех обращений и т. д.

Пример кода в HTML и отображения такого уведомления в Telegram:

В ссылке на вашу базу знаний и профиль пользователя укажите название своего поддомена на Омнидеске вместо [domain].

442c822cb722544be6099b088b61990a.png

Пример кода в Markdown V2 и отображения такого уведомления в Telegram:

В ссылке на вашу базу знаний и профиль пользователя укажите название своего поддомена на Омнидеске вместо [domain].

0ce5882b1649f85509ebe157e89614e4.png

7. Выберите нужный формат разметки

Телеграм поддерживает разные форматы разметки текста, указать нужный можно через опцию параметра “parse_mode”:

a. HTML — этот тип форматирования мы использовали для примеров в основной части статьи по настройке уведомлений.

б. Markdown V2 — актуальный синтаксис, рекомендованный для использования Телеграмом.

В этом языке разметки есть ограничение на передаваемые символы — такие как ‘_’, ‘*’, ‘[‘, ‘]’, ‘(‘, ‘)’, ‘~’ и т. д. Текст или переменные, которые их содержат, нужно оформлять в виде `кода`, то есть использовать с двух сторон обратные одинарные кавычки, или backticks (юникод U+0060). Обратите внимание, что в примерах кода мы не обрамляем такими кавычками переменные [case_subject] и [user_full_name]. Если в них встретится один из таких символов, уведомление не будет доставлено в Телеграм. Подробнее — в документации Телеграма;

Номер обращения и почту в разметке Markdown V2 можно скопировать в один клик.

Пример кода и отображения такого уведомления в Telegram:

bd9a8c48e6b4ca69513bf26ef39d00e1.png

в. Markdown в Telegram считают устаревшим, но оставили поддержку этого формата для обратной совместимости.

Пример кода и отображения такого уведомления в Telegram:

e96e97052155839cdb08f689e9e4f529.png

г. Entities — используется как альтернатива parse_mode. Позволяет передать только одну специальную сущность. Необходимо знать точную длину сообщения. Подойдет, если вы хотите использовать специальные возможности или настроить минималистичные уведомления.

Пример кода и отображения такого уведомления в Telegram:

< "chat_id": [полученный_id], "text":"Новый ответ в обращении: [case_number]", "entities": [ < "offset": 0, "length": 35, "type": "text_link", "url":"[case_url]" >, < "offset": 0, "length": 35, "type": "bold" >], "disable_web_page_preview": "True" >

368817780cea4429c016fccc23e4c9c7.png

8. Добавьте упоминание сотрудника через @username.

Если хотите упоминать именно ответственного, то:

а. Для каждого из сотрудников создайте правило для входящих обращений, которое будет отправлять уведомление с упоминанием ответственного в Telegram при поступлении нового обращения:

503f94de1645c858d7ba9be301b09472.png

Используйте следующий текст кастомного запроса:

7ccbbacee667dd15974ee04c04f75f90.png

PRO подсказка: Для более быстрого добавления правил используйте функцию дублирования и затем редактируйте в правилах только данные упоминаемого сотрудника. Объедините правила, созданные для всех сотрудников, в одну группу.

Разместите созданную группу правил после правила, которое назначает ответственного в обращении. К примеру, чтобы равномерно назначать ответственными в обращении всех доступных сотрудников, кроме руководителя и тех, у кого доступ «только просмотр», можете использовать такое правило:

051b43635fa9c6910c96e7f6f8a24387.png

б. Для отправки уведомления с упоминанием ответственного в Telegram при поступлении нового ответа в обращении также понадобятся отдельные правила для каждого сотрудника, теперь уже для измененных обращений. Их мы также рекомендуем объединить в группу. Вот пример такого правила:

725c2536e35eea4e33c032509c0254c5.png

Используйте следующий текст кастомного запроса:

Обратите внимание, что для получения текста ответа в обращении в параметре “text” нужно использовать переменную [last_message|text].

5c9239bbfa81039c439c8107530945d3.png

PRO подсказка: Чтобы отобразить полное имя ответственного вместо username, используйте следующую конструкцию:

Как получить ID пользователя, подробно описано в пункте 2 этой инструкции.

786fedefcf2979f58762af36fa186032.png

9. Отправляйте уведомления в конкретную тему группы

Для отправки уведомлений в конкретную тему группы понадобится “message_thread_id”.

Важно: При включении тем в настройках группы она преобразуется в супергруппу, а ее Group ID и Chat ID навсегда меняются на другой. Если вы получали уведомления в группу и затем активировали темы, вам будет недостаточно получить только ID конкретного треда. Потребуется обновить и Chat ID группы, указанный в коде запроса в вашем правиле в Омнидеске. ↓

Chat ID для супергруппы рекомендуем получать через json-ответ API Телеграма, как это описано выше. Спросить ID у одного из специализированных ботов также можно, а вот просто скопировать цифры из адресной строки веб версии «А» Telegram уже не получится, так как в ней отображается именно Group ID.

Если способ с обращением к API Телеграм вам кажется слишком сложным, а сторонним ботам вы не доверяете, можете попробовать «сконструировать» Chat ID по следующей формуле: к ID группы, который отображается в браузерной строке добавьте «100» между “” и самим ID. Если Используете ссылку на тему в группе, доступную в том числе и в приложении для смартфонов, то добавьте к полученным цифрам «-100».

К примеру, в строке браузера у вас отображается https://web.telegram.org/a/#-6554553552_13. ID группы тут «-6554553552», а chat_id в этом случае —1006554553552.

Если используете ссылку на тему из мобильного приложения, то она, обычно, выглядит так: https://t.me/c/6554553552/13. Chat ID в этом случае будет выглядеть как «-1006554553552».

На данный момент префикс, используемый при генерации Chat ID для супергруппы, именно «100», но в будущем этот параметр может измениться, и тогда описанный нами метод перестанет работать.

Если вы настроили уведомления по инструкции, но не получаете их, проверьте, что используете корректный Chat ID, другим из описанных в начале этой инструкции способов.

Получить ID нужной темы можно через ссылку на нее в самом Telegram. Нажмите на название темы и скопируйте цифры после «/». К примеру, для https://t.me/supergroupname/10 message_thread_id равен 10;

Полученный message_thread_id укажите в тексте кода запроса. Пример:

Как узнать chat id для канала (группы) Telegram

Как узнать chat id для канала (группы) Telegram

Заметки айтишника

Иногда требуется, чтобы бот Telegram, которого вы создаете, умел постить сообщения в сообщество или группу от имени этой самой группы. Но вот незадача — для отправки сообщения нужен ID чата, в который это самое сообщение отправлять. Нужно его каким-то образом получить. Итак, начнем.

Для начала делаем канал публичным. После получения id можно будет снова сделать его частным, если требуется.

Вводим адрес в строку браузера, изменив выделенное на своё:

https://api.telegram.org/botBOT:TOKEN/getChat?chat_id=@имяканала

BOT:TOKEN — токен бота, полученный при его создании.

@имяканала — создается при переводе канала в публичный.

В ответ получите закодированное в json сообщение:

Расшифровывается оно так:

ok: true — запрос успешно выполнен

id: -100xxxxxxx — это и буде ID чата, вводится со знаком минус.

UPDATE: Сделал сервис для быстрого получения Chat id — ССЫЛКА

  • ← Как получить API ключ AmoCRM
  • Подгрузка страниц на AJAX для элементов каталога в Битрикс →

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *