0

I am creating a telegram bot with Yii2 and my code for WebHook looks like this:

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

        }   
    }

If you send '/start' text to this bot, it replies with "test" ENDLESSLY!
I am assuming this is because Telegram server can't receive 200 OK status from my code.
So, how do I respond with Status 200 OK to stop Telegram server from sending messages endlessly?

Donik
  • 33
  • 6

1 Answers1

0

I think it's because take too long to process.

You can end webhook request in first line of code, and implementation is vary from programming language.

For instance, if you are NginX with fastcgi, it's fastcgi_finish_request().

Sean Wei
  • 7,433
  • 1
  • 19
  • 39