Telegram максимальная длина сообщения бота

Я начал программировать бот телеграммы, и у меня проблема. когда я отправляю/запускаю команду, он отправляет мне приветственное сообщение (как я его запрограммировал), но он не отправляет его один раз! он продолжает посылать его бесконечно, как цикл!
это источник:

‘); function makereq($method,$datas=[]) < $url = «https://api.telegram.org/bot».API_KEY.»/».$method; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($datas)); $res = curl_exec($ch); if(curl_error($ch))< var_dump(curl_error($ch)); >else < return json_decode($res); >> $website = «https://api.telegram.org/bot».API_KEY; $update = json_decode(file_get_contents(‘php://input’)); $chat_id = $update->message->chat->id; $message_id = $update->message->message_id; $from_id = $update->message->from->id; $name = $update->message->from->first_name; $username = $update->message->from->username; $textmessage = isset($update->message->text)?$update->message->text:»; $reply = $update->message->reply_to_message->forward_from->id; $stickerid = $update->message->reply_to_message->sticker->file_id; $messageEntity = $update->messageentity->type; function SendMessage($ChatId, $TextMsg) < makereq(‘sendMessage’,[ ‘chat_id’=>$ChatId, ‘text’=>$TextMsg, ‘parse_mode’=>»MarkDown»] ); > if($textmessage == ‘/start’) < SendMessage($chat_id,»); > ?>
Лучший ответ:

Возможно, вы используете webhook. Если вы не отвечаете с http-статусом 200, телеграмма bot api думает, что с вашим сервером что-то не так, и запрашивает снова каждые несколько секунд (как указано в документации api: “В случае неудачного запроса мы сдадимся после разумное количество попыток.” ).

Редирект бот: Автоматическая пересылка сообщений телеграмм


Поэтому просто добавьте header(«HTTP/1.1 200 OK»); в ваш script и voilà! (Если ваша версия php больше 5.4, вы можете использовать http_response_code(200); )

Если вы polling с getUpdates , вам нужно увеличить свой смещение.

offset = 1 + latest_update_id

ЕСЛИ вы используете WebHooks … https://core.telegram.org/bots/api#update update_id

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

Как сказал Yoily L, вам нужно вернуться 200 до того, как телеграмма подумает, что запрос провалился.

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

Вы можете использовать fastcgi_finish_request() для сброса данных ответа клиенту.
http://php.net/manual/en/function.fastcgi-finish-request.php

http_response_code(200); fastcgi_finish_request(); // continue execution, send messages and whatever

Также обратите внимание на то, что tuxrampage прокомментировала в документах:

script будет по-прежнему занимать FPM-процесс после fastcgi_finish_request() . Так что чрезмерно использовать его для длительной работы задачи могут занимать все ваши потоки FPM до pm.max_children . Это будет приводят к ошибкам шлюза на веб-сервере.

Еще одна важная вещь – обработка сеанса.

Сеансы заблокированы как если они активны (см. документацию для session_write_close() ). Это означает, что последующие запросы блокируют пока сеанс не будет закрыт.

Поэтому вы должны позвонить session_write_close() как можно скорее (даже до fastcgi_finish_request() ), чтобы разрешить последующие запросы и хороший пользовательский интерфейс.

Это также относится ко всем другим методам блокировки как стая или например, блокировки базы данных. Пока блокировка активна после запросы могут быть bock.

Вероятно, вы захотите проверить

if (is_callable(‘fastcgi_finish_request’))

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

Разработка Telegram-бота на Python+C

Создаем Telegram-бот, работаем c I/O Bound нагрузкой, подключаем фичи Google Drive и пишем на C внутри Python.

Введение

В этой инструкции мы создадим приложение, которое интегрируется со сторонними API. Разберем I/O Bound нагрузку и поработаем с асинхронностью в Python.

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

Что в Телеграме значит включен медленный режим и как установить ограничение

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

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

Что такое медленный режим в Телеграм?

Данная функция — это ограничение, которое администратор группы в Телеграм может наложить на ее участников.

медленный режим

Все потому, что мессенджер имеет широкий лимит на максимальное количество людей в группе: 200 000 — если тысячи пользователей будут писать что-то одновременно, то переписка превратится в хаос. Чат начнет прокручиваться слишком быстро, важные сообщения станут теряться, что сильно навредит качеству общения.

Описываемая функция нужна для того, чтобы ограничить периодичность, с которой один пользователь способен отправлять сообщения. Длина промежутка варьируется от 10 секунд до 1 часа: к примеру, если руководитель указал значение промежутка на отметке «30 сек», после отправки сообщения участник переписки сможет отправить новое только через 30 секунд.

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

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

Как установить данное ограничение для своего чата?

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

1

Затем в появившемся меню нажать на кнопку «Разрешения».

2

Наконец, прокрутить экран вниз и в соответствующем окне установить требуемую длину интервала. При необходимости выбрать из списка людей, на которых вы не хотите накладывать лимит.

3

Как видите, активация медленного режима — невероятно удобный способ контролировать общение в вашем Телеграм-чате.

Источник: it-tehnik.ru

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