Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 电报BotApi,向多个聊天室id发送消息_Php_Ajax_Json_Telegram_Telegram Bot - Fatal编程技术网

Php 电报BotApi,向多个聊天室id发送消息

Php 电报BotApi,向多个聊天室id发送消息,php,ajax,json,telegram,telegram-bot,Php,Ajax,Json,Telegram,Telegram Bot,我想知道我是否可以用我的机器人通过电报机器人api向多个聊天室id发送消息,但我想不出来。这完全是因为电报API很难理解。 我用它向一个聊天室id发送消息: 无法使bot向多个聊天id发送消息,但有一个技巧可以暂时解决此问题:) 为什么不给每个聊天id发送一条消息 让我们看看PHP中的这个示例: <?php $message = "Hi John"; $chatIds = array("xxx","xxx","xxx"); // AND SOME MORE foreach($chatId

我想知道我是否可以用我的机器人通过电报机器人api向多个聊天室id发送消息,但我想不出来。这完全是因为电报API很难理解。 我用它向一个聊天室id发送消息:


无法使bot向多个聊天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);
}
?>

仅供参考

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


我不是程序员。因此,我无法举例说明。

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

根据电报现场:

如何一次向我的机器人的所有订户发送消息?
不幸的是,目前我们没有发送批量消息的方法,例如通知。将来我们可能会按照这些思路添加一些内容。
为了避免在发出质量通知时触及我们的极限,考虑将它们扩展到更长的时间间隔,例如8-12小时。API每秒不允许向不同的用户发送超过30条消息,如果你仔细检查,就会发现429条错误。 您不能以这种方式向所有用户发送消息

机器人常见问题解答页面中的问题和解决方案:

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


除了@farsad的答案:添加睡眠(秒数)在foreach循环内,不会被电报禁止。由于Telegram API中对机器人每秒30条消息的限制,API似乎不可能做到这一点-如果这是一个您想要的函数,也许谢谢,但首先,您应该使用curl来处理请求,而不能使用
foreach
来处理,因为php会超时,我认为,如果这是唯一的方法,那么我们应该使用AJAXprocessing@OmidForeach是一种实现这一点的方法,我将它用于几个基于数据库的bot&关于file\u get\u内容,我知道它会抛出超时,但我之前为curl编写了一个函数,我使用了好几次。我写了文件内容来简化答案。好运气:)你说得对,但这不是这个问题的答案,所以我不能只点击“接受”按钮,你应该编辑你的答案,告诉我这是不可能的,然后试着给我另一种方式,就像你目前的答案一样。看第一行,我说“没有办法让机器人向多个聊天id发送消息,但是…”所以我说,没有办法做到这一点,但有一个简单的技巧:)好的luckhi farsad,当我们发送多条消息时,有可能阻止来自电报的消息吗?电报会处理这个问题。我运行的cron作业可以向大约1500个用户发送消息。