Telegram BotApi,向多个chat_id发送消息

时间:2015-09-05 22:37:18

标签: php ajax json telegram telegram-bot

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

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

4 个答案:

答案 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。

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