为什么我的Telegram机器人无休止地发送消息

问题描述 投票:0回答:1

我正在使用Yii2创建一个电报机器人,我的WebHook代码如下所示:

public function actionGetUpdates() {

        $telegram = new Telegram('484152800:A*************************');

        $request = file_get_contents('php://input');
        $request = json_decode( $request, TRUE );
        header("HTTP/1.1 200 OK");

        if( !$request )
        {
            // Some Error output (request is not valid JSON)
        }
        elseif( !isset($request['update_id']) || !isset($request['message']))
        {
            // Some Error output (request has not message)
        }
        else
        {
            $chatId  = $request['message']['chat']['id'];
            $message = $request['message']['text'];

            switch( $message )
            {
                case '/start':
                    $telegram->sendMessage('82166*****','test');
                    break;
            }

        }   
    }

如果您向此机器人发送'/ start'文本,它会立即回复“test”! 我假设这是因为Telegram服务器无法从我的代码接收200 OK状态。 那么,我如何用Status 200 OK响应以阻止Telegram服务器无休止地发送消息?

php yii2 telegram-bot php-telegram-bot
1个回答
0
投票

我认为这是因为处理时间过长。

您可以在第一行代码中结束webhook请求,并且实现与编程语言不同。

例如,如果你是带有fastcgi的NginX,那就是fastcgi_finish_request()

© www.soinside.com 2019 - 2024. All rights reserved.