Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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 如何捕捉电报机器人中的任何错误?_Php_Laravel_Try Catch_Telegram Bot - Fatal编程技术网

Php 如何捕捉电报机器人中的任何错误?

Php 如何捕捉电报机器人中的任何错误?,php,laravel,try-catch,telegram-bot,Php,Laravel,Try Catch,Telegram Bot,我想知道如何捕捉电报机器人API中任何可能的错误。 因为当一个错误发生时,电报会坚持它,不会回答另一个请求。 如果我的代码、使用的web服务或阻止bot或。。。 如何避免在使用PHP的telegram bot API中坚持一个请求? 我想我需要的是类似于下面的代码,但对于任何类型的错误都更通用: try { $telegram->sendMessage([ 'chat_id' => '<PERSONS_ID>',

我想知道如何捕捉电报机器人API中任何可能的错误。 因为当一个错误发生时,电报会坚持它,不会回答另一个请求。 如果我的代码、使用的web服务或阻止bot或。。。 如何避免在使用PHP的telegram bot API中坚持一个请求? 我想我需要的是类似于下面的代码,但对于任何类型的错误都更通用:

try {

    $telegram->sendMessage([
        'chat_id'                  => '<PERSONS_ID>',
        'text'                     => 'Here is some text',
    ]);
} catch (TelegramResponseException $e) {
    $errorData = $e->getResponseData();

    if ($errorData['ok'] === false) {
        $telegram->sendMessage([
            'chat_id' => '<ADMINISTRATOR ID>',
            'text'    => 'There was an error for a user. ' . $errorData['error_code'] . ' ' . $errorData['description'],
        ]);
    }
}
试试看{
$telegram->sendMessage([
'聊天室id'=>'',
'文本'=>'这里有一些文本',
]);
}捕获(电报响应例外$e){
$errorData=$e->getResponseData();
如果($errorData['ok']==false){
$telegram->sendMessage([
'聊天室id'=>'',
“text'=>“用户出现错误。”。$errorData['error\u code']”.。$errorData['description'],
]);
}
}

最后,我巧妙地解决了这个问题。我创建了另一个机器人来处理错误。 所以我有一个机器人X和一个错误处理机器人Y。 这里是我从电报接收webhooks的POST方法:

public function postWebhook(Request $request)

    { .....
        try
        { ....
         bot X token
         everything the bot want to do...
        }
        catch (\Exception $e) 
        {
             bot Y send me the probable problem in my code....
        }
        catch (Throwable $e)
        {
               bot Y send me the probable problem in telegram such 
               as blocking ,..
        }

现在,我可以防止陷入错误,而bot工作得很好。如果我的web服务的某个部分出现问题或我的代码有错误,甚至我都会收到通知。

你至少能给我们看一个吗?@ohgod你为什么要阅读我的问题,甚至电报机器人API?您链接了用于开发电报客户端应用程序的电报核心API。