Мне было интересно, могу ли я отправить сообщение с моим ботом на telegram bot api, на несколько chat_id, но я не могу понять это. это полностью из-за телеграмм API, так трудно понять.
Я использовал это для отправки сообщения одному chat_id:
https://api.telegram.org/botTOKKEN/sendMessage?chat_id=xxxxxxx&текст = Привет + Джон
Нет способа заставить бота отправить сообщение на несколько идентификаторов чата, но есть хитрость, которая может это исправить сейчас 🙂
Почему бы не отправлять каждому чату сообщение ?!
Давайте посмотрим на этот пример в PHP:
<?php
$message = "Hi John";
$chatIds = array("xxx","xxx","xxx"); // AND SOME MORE
foreach($chatIds as $chatId) {
// Send Message To chat id
file_get_contents("https://api.telegram.org/botTOKKEN/sendMessage?chat_id=$chatId&text=".$message);
}
?>
Проблема с foreach или любым другим массивным sendMessage заключается в том, что API не будет разрешать более ~ 30 сообщений различным пользователям в секунду.
В соответствии с Боты FAQ на сайте телеграммы:
Как я могу отправить сообщение всем подписчикам моего бота одновременно?
К сожалению, на данный момент у нас нет методов для отправки массовых сообщений, например уведомления. Мы можем добавить что-то подобное в будущем.
Чтобы не нарушать наши ограничения при рассылке массовых уведомлений, рассмотрите возможность их распространения на более длительные промежутки времени, например 8-12 часов. API не будет допускать более ~ 30 сообщений для разных пользователей в секунду, если вы пройдете через это, вы получите 429 ошибок.
Вы не можете отправить сообщение таким образом всем пользователям.
и решение на странице часто задаваемых вопросов ботов:
Мой бот выходит за пределы, как мне избежать этого?
При отправке сообщений в определенном чате избегайте отправки более одного сообщения в секунду. Мы можем разрешить короткие всплески, превышающие этот предел, но в итоге вы получите 429 ошибок.
Если вы отправляете массовые уведомления нескольким пользователям, API не разрешит более 30 сообщений в секунду или около того. Для получения наилучших результатов рассмотрите возможность рассылки уведомлений через большие интервалы 8–12 часов.
Также обратите внимание, что ваш бот не сможет отправлять более 20 сообщений в минуту одной и той же группе.
В дополнение к ответу @farsad: Добавить сна (NUMBER_OF_SECONDS); внутри цикла foreach, чтобы не быть заблокированным телеграммой. Так как для ботов в Telegram API существует ограничение в 30 сообщений в секунду.
Просто чтобы ты знал.
Мы могли бы ввести chat_ids в базу данных. Запросите и зациклите раздел сообщения для отправки сообщения на несколько идентификаторов чата с помощью sleep ().
Я не программист. Поэтому я не смог привести пример.