10

我想知道我是否可以在电报机器人 api 上使用我的机器人向多个 chat_id 发送消息,但我无法弄清楚。这完全是因为电报 API 很难理解。我用它来向一个chat_id发送消息:

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

4

4 回答 4

21


没有办法让机器人向多个聊天 id 发送消息,但现在有一个技巧可以解决它:)
为什么不向每个聊天 id 发送一条消息?!
让我们看一下 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);
}
?>
于 2015-09-11T18:51:31.210 回答
4

除了@farsad 的回答:添加sleep(NUMBER_OF_SECONDS); 在 foreach 循环中不会被电报禁止。因为 Telegram API 中的机器人每秒有 30 条消息的限制

于 2018-02-19T09:32:58.417 回答
1

foreach 或任何其他大量 sendMessage 的问题在于 API 不允许每秒向不同用户发送超过 30 条消息。

根据电报网站上的机器人常见问题解答:

如何一次向我的机器人的所有订阅者发送消息?
不幸的是,目前我们没有发送批量消息的方法,例如通知。我们将来可能会在这些方面添加一些东西。
为了避免在发送大量通知时达到我们的限制,请考虑将它们分散在更长的时间间隔内,例如 8-12 小时。该 API 不允许每秒向不同用户发送超过 30 条消息,如果超过此限制,您将开始收到 429 错误。您不能以这种方式向所有用户发送消息。

和 Bots FAQ 页面中的解决方案:

我的机器人达到了极限,我该如何避免这种情况?
在特定聊天中发送消息时,请避免每秒发送超过一条消息。我们可能允许超过此限制的短脉冲,但最终您将开始收到 429 错误。
如果您向多个用户发送批量通知,API 将不允许超过每秒 30 条左右的消息。考虑以 8 到 12 小时的间隔分散通知以获得最佳效果。
另请注意,您的机器人每分钟向同一组发送的消息不能超过 20 条。

于 2017-02-06T20:04:56.520 回答
-5

仅供您参考。

我们可以将 chat_ids 输入到数据库中。使用 sleep() 查询并循环消息部分以将消息发送到多个聊天 ID。

我不是程序员。所以我不能举个例子。

于 2017-02-05T17:29:04.357 回答