json 电报BotApi,发送消息到多个chat_id

0qx6xfy6  于 2023-11-20  发布在  其他
关注(0)|答案(5)|浏览(110)

我想知道我是否可以用我的机器人在电报机器人API上发送一条消息给多个chat_id,但我想不通。这完全是因为电报API太难理解了。我已经用这个发送消息给一个chat_id:
https://api.telegram.org/botTOKKEN/sendMessage?chat_id=xxxxxxx&text=Hi+John

lmyy7pcs

lmyy7pcs1#

没有办法让机器人发送消息到多个聊天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);
}
?>

字符串

bogh5gae

bogh5gae2#

除了@farsad的回答:在foreach循环中添加**sleep(NUMBER_OF_SECONDS);**以避免被Telegram禁止。由于Telegram API中的机器人每秒限制为30条消息

3okqufwl

3okqufwl3#

foreach或任何其他大规模sendMessage的问题是,API不允许每秒向不同用户发送超过30条消息。
根据Telegram网站上的Bots FAQ:

我如何同时向所有机器人的订阅者发送消息?

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

和解决方案在机器人常见问题页面:

我的机器人正在达到极限,我如何避免这种情况?

在特定聊天中发送消息时,请避免每秒发送多个消息。我们可能允许超过此限制的短时间突发,但最终您将开始收到429个错误。
如果您要向多个用户发送批量通知,API将不允许每秒发送超过30条消息。请考虑将通知分散在8-12小时的大间隔内,以获得最佳效果。
另请注意,您的机器人将无法每分钟发送超过20条消息到同一组。

6l7fqoea

6l7fqoea4#

在你的代码检查中有一个错误,它应该是这样的

<?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);
}
?>



?>

字符串

u4dcyp6a

u4dcyp6a5#

只是为了你的信息。
我们可以将chat_id输入到数据库中。使用sleep()查询并循环消息部分,以便将消息发送给多个chat-id。
我不是一个程序员。所以我不能举个例子。

相关问题