Получить сообщение по id Telegram

У меня проблема с боттом Telegram, над которым я сейчас работаю. Я получаю сообщения от пользователей в следующем формате:

update < update_id: 82618016, message: < message_id: 363, from: < id: 22303518, first_name: ‘Steve’, language_code: ‘de-DE’ >, chat: < id: 22303518, first_name: ‘Steve’, type: ‘private’ >, date: 1501501753, text: ‘j’ > >
Когда я хочу получить доступ к идентификатору чата, я могу сделать это без проблем, используя
$.message.chat.id
Как только вы захотите получить message_id или first_name, я получаю «undefined».
$.message.chat.first_name $.message.message_id

Может ли кто-нибудь помочь мне здесь? Насколько я понимаю, я правильно понял структуру сообщения, поэтому я действительно не знаю, в чем проблема. заранее большое спасибо EDIT: Я добавляю немного больше своего кода здесь: Основной код для бота (включая webhook) заключается в следующем:

initializeBot(); function initializeBot() < const Telegram = require(‘telegram-node-bot’); const PingController = require(‘./controllers/ping’); const OtherwiseController = require(‘./controllers/otherwise’); const tg = new Telegram.Telegram(‘MY_TOKEN_IS_HERE’, < webhook: < url: ‘https://mutzi-bot.herokuapp.com’, port: process.env.PORT || 443, host: ‘0.0.0.0’ >>) tg.router.when(new Telegram.TextCommand(‘/ping’, ‘pingCommand’), new PingController()) .otherwise (new OtherwiseController()); >

Когда вызывается OtherwiseController, вызывается следующий код (я уменьшил его до сути, чтобы прояснить проблему.

How to get sent message id by telegram bot | Как узнать ID отправленного сообщения телеграм бот


class OtherwiseController extends Telegram.TelegramBaseController < handle($)< console.log($.message.chat.first_name); console.log($.message.text); console.log($.message.chat.id); console.log($.message.message_id); >>
Консольный вывод для этого сообщения
update < update_id: 82618020, message: < message_id: 371, from: < id: 22303518, first_name: ‘Steve’, language_code: ‘de-DE’ >, chat: < id: 22303518, first_name: ‘Steve’, type: ‘private’ >, date: 1501509762, text: ‘hello’ > >
undefined hello 22303518 undefined

Источник: overcoder.net

Создание Telegram бота на PHP: Отправка и получение сообщений. Урок 2

Для разработки Telegram ботов, я создал поддомен info.d-nik.site. Его я буду использовать для создания новостного сайта, а также для программирования ботов на PHP. То есть, именно здесь я буду хранить php скрипты для взаимодействия с Телеграм ботами.

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

Если вы не знаете, как создать поддомен, то я пошагово опишу как это делается на хостинге ukraine.com.ua (это хостинг на котором размещён мой сайт). Но помните, что у каждого хостинг-провайдера свои особенности, и потому у вас этот процесс может быть несколько другим.

Создаём поддомен на хостинге Ukraine

Для того чтобы создать поддомен, нужно:

1. Авторизоваться на сайте ukraine.com.ua и перейти в раздел «Мои сайты».

Хостинг Ukraine

2. Нажать «Добавить поддомен» в блоке нужного сайта.

Добавить поддомен

3. В появившемся окне нужно ввести желаемое название поддомена (я ввёл info), выбрать нужный сайт (у меня и так выбран d-nik.info) и нажать на кнопку «Добавить».

название поддомена

4. Теперь нужно немного подождать, пока будет созданы виртуальный хост и корневой каталог поддомена.

Через несколько минут, если мы перейдём в корневой каталог сайта d-nik.site, то в нём уже будет папка info. Это и есть корневой каталог нашего нового сайта и, как я уже говорил ранее, здесь мы будем хранить PHP скрипты для взаимодействия с Telegram ботами.

Взаимодействие c Telegram ботом

Давайте теперь перейдём в этот каталог info и создадим в нём файл bot.php.

telegram bot php

Вот в этом файле мы и будем писать PHP код для взаимодействия с ботом. Доступен он будет по адресу https://info.d-nik.site/bot.php.

На этом подготовительный этап закончен и можно переходить непосредственно к программированию.

Устанавливаем Webhook

Для того чтобы все сообщения из Telegram бота приходили на наш PHP скрипт, нужно установить «Webhook». Для этого в адресной строке браузера вводим ссылку со следующей конструкцией:

https://api.telegram.org/bot/setWebhook?url=

  • – это токен, который мы получили при регистрации своего бота в Телеграм.
  • – путь к файлу PHP скрипта.

Для примера, моя ссылка выглядит следующим образом:

https://api.telegram.org/bot5741786015:AAGTuEwCBGHmcJP9kO-OzV_xKIduBkbAK6Y/setwebhook?url=https://info.d-nik.site/bot.php

Если вы всё сделали правильно, то увидите в браузере следующую информацию:

Это говорит о том, что Вебхук был установлен.

Webhook – это удобный и быстрый способ оповестить клиента об изменении на сайте, основанный на методе расширения или изменения поведения веб-страницы или веб-приложения с помощью обратных вызовов.

Если говорить о том, как работает Webhook в Телеграм, то здесь всё очень просто. Когда приходит новое сообщение, сервер Telegram отправляет их вашему боту.

Получение сообщений от Telegram

Теперь мы можем написать свой первый код на PHP в файле bot.php, который позволит получить сообщение от Telegram с информацией о том, кто написал чат-боту, когда он это сделал, какой текст был написан и т.д.

Еще по теме:  Телеграмм это русская сеть

$data: Array
(
[update_id] => 699174043
[message] => Array
(
[message_id] => 22
[from] => Array
(
[id] => 1526361849
[is_bot] =>
[first_name] => UserFirstName
[last_name] => UserLastName
[username] => UserName
[language_code] => uk
)

[chat] => Array
(
[id] => 1526361849
[first_name] => UserFirstName
[last_name] => UserLastName
[username] => UserName
[type] => private
)

[date] => 1670785452
[text] => Привет бот!
)

  • «message_id» — id созданного сообщения;
  • «from» — кто отправил сообщение;
  • «chat» — данные о чате в который попало сообщение;
  • «date» — дата создания сообщения;
  • «text» — текст сообщения.

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

Рисунок. Отправляем сообщение «привет бот!»

программирование телеграм бота

Рисунок. Файл message.txt на сайте

Отправка сообщений боту в Telegram

Давайте теперь рассмотрим простой пример, как можно взаимодействовать с пользователем. Например, проанализируем, какое сообщение было отправлено боту. Если было отправлено «/start», то бот ответит «Здравствуйте. Я ваш бот!». В любом другом случае пользователь увидит «Напишите пожалуйста /start!».

// Ответ на текстовые сообщения // Получаем текст, который отправил пользователь Телеграмм боту в мессенджере if (!empty($data[‘message’][‘text’])) < $text = $data[‘message’][‘text’]; // Если пользователь отправил сообщение «/start» if (mb_stripos($text, ‘/start’) !== false) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Здравствуйте. Я ваш бот!’ ) ); exit(); > else < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Напишите пожалуйста /start!’ ) ); exit(); > > ?>

Обратите внимание на то, что при написании кода мы используем клиентскую библиотеку работы с URL – Curl. Она является намного более продвинутой альтернативой функции file_get_contents поскольку позволяет работать с куками, с заголовками, позволяет отправлять формы и переходить по редиректам.

Эта библиотека не требует дополнительных файлов, и ее не нужно подключать.

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

Вас может заинтересовать

  • Telegram бот на PHP: Отправка сообщений в Telegram-канал
  • Создание Telegram бота на PHP: Создание меню для Телеграм бота. Урок 7
  • Создание Telegram бота на PHP: Кнопки в телеграм боте. Урок 6
  • Создание Telegram бота на PHP: Загрузка и скачивание видео. Урок 5
  • Создание Telegram бота на PHP: Отправка и сохранение файлов. Урок 4
  • Создание Telegram бота на PHP: Отправка и получение картинок. Урок 3
  • Создание Telegram бота на PHP: Регистрация бота и создание чата. Урок 1
  • Создание Telegram бота на PHP: Подготовка к разработке бота. Вступление
Еще по теме:  Использовать Телеграм на нескольких компьютерах

Источник: d-nik.site

Три простых шага для отправки сообщения в Telegram используя Python

Отправлять сообщение в телеграмм может оказаться полезным при запуске ресурсоемких операций. Например скрипт который отработал один час, должен отправить вам сообщение о статусе завершившейся операций. Вам вероятно, понадобится простой скрипт, чтобы отправить сообщение, когда ваша операция завершит работу. Для этого мы можем легко написать функцию Python, которая отправляет вам сообщение Telegram всякий раз, когда вы ее вызываете.

Создание Telegram-бота с помощью BotFather

  1. Откройте приложение Telegram и найдите BotFather. (Встроенный бот Telegram, который помогает пользователям создавать собственных ботов Telegram)
  2. Введите /newbot, чтобы создать нового бота.
  3. Дайте вашему боту название.
  4. Скопируйте токен Telegram для вашего нового бота.

Примечание: не загружайте свой токен онлайн, так как любой, у кого есть ваш токен, получит полный контроль над вашим ботом Telegram.

Получение идентификатора chat ID

В Telegram у каждого чата есть идентификатор чата. Нам нужен этот идентификатор для отправки сообщений в Telegram с использованием Python.

  1. Отправьте своему боту в Telegram сообщение (любое)
  2. Запустите этот скрипт Python, чтобы найти свой chat ID

import requests TOKEN = «YOUR TELEGRAM BOT TOKEN» url = f»https://api.telegram.org/bot/getUpdates» print(requests.get(url).json())

Этот скрипт вызывает функцию getUpdates, которая проверяет наличие новых сообщений в чатах. Мы можем найти наш chat ID из возвращенного JSON (тот, что выделен красным)

Note: Если вы не отправите сообщение своему боту в Telegram, ваши результаты могут быть пустыми.

  1. Скопируйте и вставьте идентификатор чата в следующий шаг.

Отправка сообщения Telegram с помощью Python

Скопируйте и вставьте 1) ваш токен бота Telegram и 2) ваш chat ID из предыдущих 2 шагов в следующий скрипт Python. (И также настройте свое сообщение)

import requests TOKEN = «YOUR TELEGRAM BOT TOKEN» chat_id = «YOUR CHAT ID» message = «hello from your telegram bot» url = f»https://api.telegram.org/bot/sendMessage?chat_id= print(requests.get(url).json()) # this sends the message

Запустите скрипт и проверьте свой Telegram!

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

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