Перейти к содержимому

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

  • автор:

Отправить сообщение в Telegram

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

API токен бота
Укажите API токен бота, который будет отправлять сообщение. Бот должен быть в группе администраторов канала и иметь права на публикацию сообщений. В целях безопасности не рекомендуется явно указывать токен бота в этом параметре.

1154149:AAEAro5-cFiWcIKXX5SsYoa3YE 2#mybot#

Имя или ID канала
Укажите имя публичного канала, куда будет отправлено сообщение. Например, @mychannel. Если вы отправляете сообщение в частный канал, то необходимо указать его идентификатор. Например, -10023673443.

Текст
Текст отправляемого сообщения.

Завершать работу при ошибке
Отметьте этот чекбокс, если вы хотите прекратить выполнение скрипта в случае неудачной отправки сообщения. В этом случае, текст ошибки будет содержать ответ от Telegram сервера.

Как создать бота и частный Телеграм канал

  1. Найдите бота “botfather” в Телеграм клиенте.
  2. Отправьте /newbot для создания нового бота. Вам следует указать наименование и пользовательское имя бота. Если бот успешно создан, то вы увидите API токен бота подобно 356111742:cFiWcIKXX5SsYHDRDj34oa3YE. Вы не должны никому сообщать этот токен.
  3. Создайте публичный канал с подходящим именем.
  4. Добавьте вашего бота в список администраторов созданного канала. Как минимум, бот должен иметь права на публикацию сообщений.

На данном этапе вы уже можете отправлять сообщения в созданный канал. Если вы хотите сделать канал частным, то перед этим вам необходимо получить идентификатор канала, так к частным каналам нельзя обращаться по имени. Для этого укажите в браузере следующий адрес https://api.telegram.org/bot[API_TOKEN_BOT]/sendMessage?chat_id=[CHANNEL_NAME]&text=Test, где [API_TOKEN_BOT] — это токен бота, а [CHANNEL_NAME] — имя канала, например @mychannel. Если вы все указали правильно, то вы получите ответ подобно этому

 1 2 "message_id":14, 3 "sender_chat": < 4 "id":-1001345116849, 5 "title":"eonza","type":"channel">, 6 "chat": < 7 "id":-1001345116849, 8 "title":"eonza", 9 "type":"channel">, 10 "date":1610522226,"text":"Test" 11>>

В параметре id указан идентификатор канала. После этого, вы можете сделать канал частным, а этот идентификатор использовать вместо имени канала.

Telegram API. Отправка сообщения с сервера

Доброго дня! Подскажите плиз как с сервера передать сообщение с необходимой информацией «самому себе», реально ли это вообще или только в Боты? На сколько я понял по WhatsApp API сейчас нет такой функции, быть может есть в Телеграмме?

Отслеживать
задан 25 окт 2017 в 14:47
CryptoWorks CryptoWorks
143 1 1 серебряный знак 13 13 бронзовых знаков

для нативного апи придётся поддержать их протокол, mt proto, или просто использовать готовые либы типа github.com/danog/MadelineProto

21 ноя 2018 в 11:05

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Выполнить запрос вида
https://api.telegram.org//sendMessage?chat_id=&text=

Отслеживать
ответ дан 25 окт 2017 в 17:30
Tarasovych Tarasovych
527 1 1 золотой знак 8 8 серебряных знаков 26 26 бронзовых знаков

Да, спасибо, про такой вариант читал.. Но на сколько я понимаю передается сообщение в Бота, а можно ли передать сообщение пользователю по номеру телефона?

26 окт 2017 в 8:01
@K.Mitnick нет, это же не Viber
26 окт 2017 в 12:16

А по поводу WhatsApp не в курсе? Кажется API закрыли они. сообщения на телефон на сколько знаю передать тоже нельзя. ChatAPI не катит уже видимо

26 окт 2017 в 15:24

  • php
  • telegram
  • whatsapp
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как отправить сообщение в Telegram

Тут мы рассказываем, как отправлять личные сообщения в Telegram с помощью бота.

Если вы хотите отправлять сообщения не в личные сообщения, а в группу в Telegram, то обратитесь к этой инструкции.

Как настроить отправку сообщений

Постройте сценарий

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

Пройдите этот урок для построения сценария.

После прохождения урока, у вас будут 5 переменных:

  • для имени
  • для фамилии
  • для телефона
  • для email
  • для вида услуги

Опубликуйте бота в Telegram

Чтобы опубликовать бота в Telegram, следуйте инструкции.

Если вы уже опубликовали бота в Telegram, переходите к следующему пункту.

Получите chat_id

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

Чтобы получить chat_id , создайте в сценарии новый экран с текстом:

Поместите этот экран в начало сценария, чтобы этот экран был в левом верхнем углу. Таким образом, этот экран будет первым при запуске бота.

Опубликуйте бота

Нажмите Опубликовать и дождитесь сообщения о том, что сценарий опубликован на канале Telegram.

Протестируйте бота

Теперь перейдите к своему боту в Telegram (не в тестовом виджете!) и отправьте боту:

Если вы хотите, чтобы сообщения приходили не вам, а другому человеку, то просто отправьте этому человеку ссылку на бота. Если этот пользователь будет общаться с этим ботом впервые, то бот сразу же пришлет значение chat_id . Если этот пользователь ранее уже общался с этим ботом, то попросите пользователя отправить в диалог /start , чтобы получить chat_id.

Бот пришлет вам нужное значение:

Скопируйте и вставьте в блокнот число, которое прислал бот.

Удалите экран с текстом $rawRequest.message.from.id . Он больше не нужен.

Отправьте данные

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

Блок должен быть оформлен следующим образом:

Метод GET

Формирование URL

Для создания URL скопируйте в блокнот строку: https://api.telegram.org/bot/sendMessage

Затем перейдите в Telegram в канал BotFather и скопируйте токен вашего бота, который был сгенерирован, когда вы публиковали канал:

В блокноте выделите

И вместо вставьте токен из Telegram:

Получится примерно следующий адрес:

Теперь выделите строку целиком и вставьте ее в поле URL HTTP-запроса в Aimylogic

Оформление поля BODY

В BODY нам нужно указать:

  • значение chat_id , которое мы получили ранее

  • все переменные, которые мы до этого собрали в сценарии.

Если вы повторили урок по сбору контактных данных, то в сценарии вы получили следующую информацию:

Ваше имя: $name Ваша фамилия: $lastname Ваш телефон: $PHONE Ваш email: $EMAIL Вид услуги: $service

Поэтому сейчас мы используем именно эти переменные.

Итак, нужно вставить значение chat_id и перечислить переменные, которые были в сценарии до отправки.

Обратите внимание на отступы и знаки препинания! Рекомендуем не набирать текст, а скопировать и вставить.

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

Готово, мы оформили Http-запрос для отправки данных.

Проверьте статус отправки

От логики «Завершен успешно» добавляем связь к новому экрану, содержащему сообщение об успешной отправке данных. Например, “Спасибо, ваши данные успешно отправлены!”

От логики “Завершен с ошибкой” делаем связь с экраном, содержащим текстовый блок “Ошибка $httpStatus ”. Данный блок поможет нам понять, в чем неполадка, если http-запрос не будет успешным.

Протестируйте сценарий

Нажмите Тестировать и поговорите с ботом.

По итогу диалога нужная информация должна прийти в Telegram.

Обратите внимание, что бот будет присылать сообщение в вашу беседу с ботом. Если вы ожидаете, что вам придет личное сообщение от какого-то другого аккаунта, вас может смутить такое поведение. Но в дальнейшем, когда другие люди будут писать боту, и вы будете получать сообщения от бота, вам будет более понятно, что происходит. Попросите другого человека прислать боту свое имя и телефон, и тогда вы получите сообщение от бота.

Возможные неполадки

Вы нажимаете Тестировать, и бот выдает ошибку

Проверьте, не используете ли вы в сценарии $rawRequest для получения имени. Если да, то тестировать нужно в канале Telegram. В тестовом виджете ошибка будет ожидаемо выпадать, так как бот пытается получить информацию из канала, которого нет.

«Ошибка -1»

Проверьте правильность URL в http-запросе. Возможно, в самом URL или в конце URL есть пробел либо по ошибке вставлен неверный символ.

«Ошибка 400»

  1. Проверьте правильность оформления http-запроса. Попробуйте удалить Telegram-бота в BotFather, создать заново и использовать заново сгенерированный токен.
  2. Проверьте правильность оформления поля BODY (синтаксис).

Образец правильного оформления поля BODY

  • Первая и последняя строчка должны содержать только фигурные скобки
  • Должны быть отступы (можете нажать Tab либо нажать пробел четыре раза)
  • «chat_id»: должно быть написано именно так (проверьте на наличие опечаток, а лучше скопируйте и вставьте): «chat_id»:
  • Значение chat_id должно быть не 123456789, а реальное значение, которое вы скопировали на шаге 3 (123456789 это пример для урока)
  • Строка, содержащая «chat_id»: должна оканчиваться запятой
  • После двоеточий должны быть пробелы
  • Значение передаваемого текста сообщения должно быть в таких кавычках: » »

Telegram Bot Api Как отправить сообщение в приватный канал через бота?

Собственно пытаюсь проверить обычным http запросом через браузер, но так не выходит. Кто может подсказать как нужно правильно указывать тип чата?
https://api.telegram.org/bot/sendMessage?chat_type=private&chat_id=AlA_. 5FA&text=Blablacar

Вот что в API «type String Type of chat, can be either “private”, “group”, “supergroup” or “channel”»
P.s. с публичным каналом проблем нет.

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

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

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

FSA

Вопрос задан давно, но нет явного ответа. При подключении бота к приватному каналу к нему приходит сообщение в виде Update. Его нужно запросить после регистрации с помощью getUpdates или отловить через webhook, если настроен. Там будет адрес приватного канала в виде числа.
А ещё при каждом сообщении на канале боту падает событие, где тоже есть числовой идентификатор канала.

Решения вопроса 1

Знаю как это сделать!

1. Сделай канал публичным, установи для него username.
2. Добавь в канал любого бота.
3. Перейди по ссылке

https://api.telegram.org/bot[ТОКЕН_БОТА]/sendMessage?chat_id=@[USERNAME_КАНАЛА]&text=тест

После перехода по ссылке будет выведен id канала, сохрани его.
4. Сделай канал приватным.
5. Отправляй сообщения вот так:

https://api.telegram.org/bot[ТОКЕН_БОТА]/sendMessage?chat_id=@[ID_КАНАЛА]&text=тест.

Ответ написан более трёх лет назад
Нравится 19 1 комментарий

DmitrY29

Дмитрий @DmitrY29 Автор вопроса

Рабочее решение. Огромное спасибо.
Отправляет только если указать private
***
lParamList.Add(‘chat_id=-1001. 951’);
lParamList.Add(‘chat_type = private’);
***

Ответы на вопрос 2

shpaker

Вольный хлебопашец

В телеграмме боты могут писать не только по username, но и по id в каналы. Я бы в этом направлении капал.

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

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