skip to Main Content

I was wondering if I could send a message with my bot on telegram bot api, to multiple chat_id, but I cant figure it out. that’s totally because of telegram apis are so hard to understand.
I have used this for send a message to one chat_id:

https://api.telegram.org/botTOKKEN/sendMessage?chat_id=xxxxxxx&text=Hi+John

4

Answers


  1. There is no way to make bot to sendMessage to multiple chat id but there is a trick that can fix it for now 🙂
    Why not sending each chat id a message ?!
    Let’s look at this example in 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);
    }
    ?>
    
    Login or Signup to reply.
  2. Just for your information.

    We could input the chat_ids to database. Query and loop the message section for sending the message to multiple chat-id with sleep().

    I am not a programmer. So I could not make an example.

    Login or Signup to reply.
  3. The problem with foreach or any other massive sendMessage is that the API will not allow more than ~30 messages to different users per second.

    According to Bots FAQ in telegram site:

    How can I message all of my bot’s subscribers at once?
    Unfortunately, at this moment we don’t have methods for sending bulk messages, e.g. notifications. We may add something along these lines in the future.
    In order to avoid hitting our limits when sending out mass notifications, consider spreading them over longer intervals, e.g. 8-12 hours. The API will not allow more than ~30 messages to different users per second, if you go over that, you’ll start getting 429 errors.
    You can’t send message this way to all user.

    and solution in Bots FAQ page:

    My bot is hitting limits, how do I avoid this?
    When sending messages inside a particular chat, avoid sending more than one message per second. We may allow short bursts that go over this limit, but eventually you’ll begin receiving 429 errors.
    If you’re sending bulk notifications to multiple users, the API will not allow more than 30 messages per second or so. Consider spreading out notifications over large intervals of 8—12 hours for best results.
    Also note that your bot will not be able to send more than 20 messages per minute to the same group.

    Login or Signup to reply.
  4. In addition to @farsad ‘s answer: Add sleep(NUMBER_OF_SECONDS); inside the foreach loop to not get banned by telegram. As there is a limit of 30 messages per second for bots in Telegram API

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search