Бот Телеграм на PHP

Примеры как зарегистрировать бота в Telegram, описание и взаимодействие с основными методами API. Документация на core.telegram.org и tlgrm.ru (неофициальный, на русском).

Все запросы к API должны осуществляться по HTTPS, подойдет бесплатный сертификат «Let’s Encrypt».

17.11.2018, обновлено 03.02.2021
75254
Предыдущая запись Вход на сайт через Вконтакте
Следующая запись Получение котировок PHP

Комментарии 14

Андрей Михайленко Андрей Михайленко
25 апреля 2020 в 20:24
0
Как сделать, что бы бот отправлял рандомыне файлы с папки, по ключевому слову.
Например,пользователь в чате пишет gif , а бот отправляет случайную гифку с папки.
Daniel Lanfort Daniel Lanfort
26 декабря 2020 в 14:57
-3
а в чем проблема?
Артем Бурлака Артем Бурлака
3 февраля 2021 в 04:24
+2
Во втором разделе почему-то используете сложную конструкцию. print_r может возвращает результат, а не выводить. За это отвечает второй параметр
Snipp.ru Snipp.ru
3 февраля 2021 в 15:58
+1
Да, действительно) Спасибо за комментарий.
Lexa Dv Lexa Dv
14 марта 2021 в 00:22
-8
Сделаю или помогу сделать вам бота. Не бесплатно, обращайтесь в телеграм: @dvoinikov
Meizu Rin Meizu Rin
15 марта 2021 в 07:02
0
А как сделать, что бы бот из сайта, отправлял добавленную новость. Автоматический
Nokian Nokian
10 июня 2021 в 01:18
0
Привет! А какой платформой на сайте пользуешься?
Тестировщик Тестировщик
23 июня 2021 в 19:49
+1
Как кнопки добавить можете код написать?
Пробую так, но не выходит ничего:
$keyboard = [
[ "Кнопка 1" ],
[ "Кнопка 2" ],
[ "Кнопка 3" ]
];
// Команда /start.
if ( mb_stripos( $text, '/start' ) !== false ) {
sendTelegram(
'sendMessage',
array(
'chat_id' => $data[ 'message' ][ 'chat' ][ 'id' ],
'keyboard' => $keyboard,
'resize_keyboard' => true,
'reply_markup' => $reply_markup,
'text' => 'Добро пожаловать в бота!',
)
);
exit();
}
Muhammaddiyor Tohirov Muhammaddiyor Tohirov
30 июля 2021 в 15:07
+1
$keyboard = [
[ "Кнопка 1" ],
[ "Кнопка 2" ],
[ "Кнопка 3" ]
];
$reply_markup = json_encode([
"keyboard"=>$keyboard,
"resize_keyboard"=>true
]);
// Команда /start.
if ( mb_stripos( $text, '/start' ) !== false ) {
sendTelegram('sendMessage',[
'chat_id'=> $data[ 'message' ][ 'chat' ][ 'id' ],
'text'=>'Добро пожаловать в бота!',
'reply_markup'=>$reply-markup
]);
exit();
}
Дмитрий Ушаков Дмитрий Ушаков
11 октября 2021 в 23:57
0
$keyboard = [
[ "Кнопка 1" ],
[ "Кнопка 2" ],
[ "Кнопка 3" ]
];
$reply_markup = json_encode([
"keyboard"=>$keyboard,
"resize_keyboard"=>true
]);
// Команда /start.
if ( mb_stripos( $text, '/start' ) !== false ) {
sendTelegram('sendMessage',[
'chat_id'=> $data[ 'message' ][ 'chat' ][ 'id' ],
'text'=>'Добро пожаловать в бота!',
'reply_markup'=>$reply_markup
]);
exit();
}
Дмитрий Ушаков Дмитрий Ушаков
11 октября 2021 в 23:53
0
Здравствуйте, подскажите, пожалуйста !
Не работает sendVideo и sendDocument !!!
 sendTelegram(
'sendVideo',
array(
'chat_id' => $data['message']['chat']['id'],
'video' => $link
)
);
sendTelegram(
'sendDocument',
array(
chat_id' => $data['message']['chat']['id'],
'document' => curl_file_create($link)
)
);

в $link лежит полный путь до файла.
Помогите, пожалуйста, вообще не понимаю в чем проблема.
Причем аналогичный код с sendPhoto работает !
sendTelegram(
'sendPhoto',
array(
'chat_id' => $data['message']['chat']['id'],
'photo' => $link
)
);
Snipp.ru Snipp.ru
12 октября 2021 в 15:16
0
Посмотрите что возвращает API, скинув ответ в лог-файл:
$res = sendTelegram(
'sendVideo',
array(
'chat_id' => $data['message']['chat']['id'],
'video' => $link
)
);
file_put_contents(__DIR__ . '/log.txt', $res . PHP_EOL, FILE_APPEND);
Дмитрий Ушаков Дмитрий Ушаков
12 октября 2021 в 21:22
0
Спасибо за ответ!
{"ok":false,"error_code":400,"description":"Bad Request: wrong file identifier/HTTP URL specified"}
{"ok":false,"error_code":400,"description":"Bad Request: failed to get HTTP URL content"}
Проблема оказалась в сервере и в правах доступа к файлам (
Дмитрий Ушаков Дмитрий Ушаков
12 октября 2021 в 21:24
0
Спасибо за Статью !!!

, чтобы добавить комментарий.

Другие публикации

Публикация записей на стену сообщества VK
Для начала вы должны быть авторизированы в VK и являться администратором группы или страницы. Далее нужно создать...
18434
+3
Получить фото из Instagram без API
Так как Instagram и Fasebook ограничили доступ к API, а фото с открытого аккаунта всё же нужно периодически получать и...
18913
+5
Подключение к платежной системе Сбербанка
После регистрации в системе эквайринга Сбербанка и получив доступ к тестовой среде, можно приступить к интеграции с...
36229
+16
Список MIME типов
Ниже приведён список MIME-заголовков и расширений файлов.
8684
+3
Работа с JSON в PHP
JSON (JavaScript Object Notation) – текстовый формат обмена данными, основанный на JavaScript, который представляет собой набор пар {ключ: значение}. Значение может быть массивом, числом, строкой и...
55172
+10
Отправка sms через «SMS Aero» в PHP
Для отправки SMS-сообщений со своего сайта можно воспользоваться сервисом SMS Aero.
2515
+1