我想知道我是否可以使用我的机器人在电报机器人api上向多个chat_id发送消息,但我无法弄明白。这完全是因为电报apis很难理解。 我用它来向一个chat_id发送消息:
https://api.telegram.org/botTOKKEN/sendMessage?chat_id=xxxxxxx&text=Hi+John
答案 0 :(得分:12)
没有办法让机器人将sendMessage发送到多个聊天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);
}
?>
答案 1 :(得分:1)
除了@farsad的回答:在foreach循环中添加 sleep(NUMBER_OF_SECONDS); ,以免被电报禁止。因为Telegram API中的机器人每秒限制为30条消息
答案 2 :(得分:0)
foreach或任何其他大量sendMessage的问题是API每秒不允许向不同用户发送超过30条消息。
根据电报网站Bots FAQ的说法:
如何立即向我的机器人订阅者发送消息?
很遗憾,目前我们还没有发送批量邮件的方法,,例如通知。我们将来可能会在这些方面添加一些内容 为了避免在发送群发通知时达到我们的限制,请考虑在较长的时间间隔内传播它们,例如8-12小时。 API每秒不允许超过30条消息给不同的用户,如果你重新开始,你将开始收到429个错误。 您不能以这种方式向所有用户发送消息。
和Bots常见问题解答页面中的解决方案:
我的机器人达到极限,我该如何避免这种情况?
在特定聊天内发送消息时,请避免每秒发送多条消息。我们可能会允许超过此限制的短暂爆发,但最终您将开始收到429个错误 如果您要向多个用户发送批量通知,则API每秒不会允许超过30封邮件。考虑在8-12小时的大间隔内分发通知,以获得最佳效果 另请注意,您的机器人无法每分钟向同一组发送超过20条消息。
答案 3 :(得分:-1)
仅供参考。
我们可以将chat_ids输入到数据库。查询并循环消息部分,以便使用sleep()将消息发送到多个chat-id。
我不是程序员。所以我无法举个例子。