Intereting Posts
Выходной текст PHP перед сном Структурирование SQL-запроса на основе нескольких флажков Удалить раздел информации о заказе из шаблона электронной почты в woocommerce Функция PHP с открытым исходным кодом для преобразования координат UTM в широту и долготу? Как конвертировать дату в timestamp, добавить 6 часов и преобразовать его обратно в дату на PHP? PHP: добавление массивов вместе Быстрая ошибка почтовой программы 'Swift_RfcComplianceException' в электронной почте, которая действительно работает? $ _POST пуст после отправки формы Вставить Игнорировать – есть ли способ узнать, проигнорирован ли оператор? MYSQL Игнорировать пользователя Abort, игнорируется PHP? Создание анимированного gif с использованием библиотеки GD Неустранимая ошибка: допустимый размер памяти 134217728 байт исчерпан (пытался выделить 71 байт) Добавить префикс в auto-increment в mysql db CakePHP: очистка поля пароля при неудачной отправке htaccess «ломается» после включения аргумента для HTTP 451

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

Я пишу телеграмму ботом с php. Я сохраняю пользователей chatid для отправки сообщения; используйте эту команду для отправки сообщения:

/admin sendall:hellow 

и в приложении php используйте этот код:

  case '/admin': if ($chat_id == 'my chatid') { $array = str_replace('/admin', '', $message); $array = trim($array); $array = explode(':', $array); $Admin = new AdminCommand(); $Admin->getCommand($array[0], $array[1]); } else { sendMessage($chat_id, 'block '); } break; 

Класс AdminCommand:

 class AdminCommand extends Database { public function getCommand($command, $action = null) { switch ($command) { case 'sendall': $this->sendall($action); break; default: # code... break; } } public function sendall($message) { $sql = $this->con->prepare('SELECT * FROM `users`'); $sql->execute(); $res = $sql->fetchAll(); foreach ($res as $row) { sendMessage($row['chatid'], $message); } exit(); } } 

Функция sendMessage:

 function sendMessage($chatId, $message) { $url = WEBSITE . "/sendMessage?chat_id=" . $chatId . "&text=" . urlencode($message); file_get_contents($url); } 

В большинстве случаев он работает нормально, но иногда после отправки сообщения всем пользователям повторяется снова и снова и не останавливается. Пока я удаляю базу данных. в чем проблема ?

Related of "отправить сообщение в телеграмме бот"

Как я объяснил в этом ответе и на странице FAQ Bots на сайте телеграммы:

Как я могу сразу сообщить всем своим подписчикам бота?
К сожалению, на данный момент у нас нет методов отправки массовых сообщений, например уведомлений. Мы можем добавить что-то в этом направлении в будущем.
Чтобы избежать попадания в наши пределы при отправке массовых уведомлений, подумайте о распространении их на более длительные интервалы, например, 8-12 часов. API не будет разрешать более 30 сообщений для разных пользователей в секунду, если вы перейдете к этому, вы начнете получать 429 ошибок. Вы не можете отправить сообщение таким образом всем пользователям.

и решение на странице часто задаваемых вопросов:

Мой бот поражает пределы, как я могу избежать этого?
При отправке сообщений внутри определенного чата избегайте отправки более одного сообщения в секунду. Мы можем разрешить короткие всплески, которые превышают этот предел, но в итоге вы начнете получать 429 ошибок.
Если вы отправляете массовые уведомления нескольким пользователям, API не будет разрешать более 30 сообщений в секунду или около того. Рассмотрите возможность распространения уведомлений на большие интервалы в 8-12 часов для достижения наилучших результатов.
Также обратите внимание, что ваш бот не сможет отправлять более 20 сообщений в минуту в одну группу.